如何修改网站后台的用户名和密码,个人博客网站的建设结构图,福州网站建设网站,网站代码语法文章目录 前言1、算法例子1.1、查字典#xff08;二分查找算法#xff09;1.2、整理扑克#xff08;插入排序算法#xff09;1.3、货币找零#xff08;贪心算法#xff09; 2、算法与数据结构2.1、算法定义2.2、数据结构定义2.3、数据结构与算法的关系2.4、独立于编程语言… 文章目录 前言1、算法例子1.1、查字典二分查找算法1.2、整理扑克插入排序算法1.3、货币找零贪心算法 2、算法与数据结构2.1、算法定义2.2、数据结构定义2.3、数据结构与算法的关系2.4、独立于编程语言 前言
亲爱的家人们技术图文创作很不容易若对您有帮助的话请点赞收藏加关注哦谢谢大家有问题请私信或加V18252587519。
1、算法例子
1.1、查字典二分查找算法
①问题描述 在查找字典中的某个字时常按照拼音的字母顺序进行查找。该过程在查找过程中不断缩小范围逐步定位目标字。
②算法分析 查字典的过程实际上是二分查找的经典实现。具体步骤包括 将字典分为两部分通过比较中间位置的字母来决定是否查找前半部分或后半部分。 每次根据字母顺序排除一半的范围直到找到目标字。
③算法本质 二分查找算法在数据量大的情况下能显著提高查找效率它的时间复杂度为 O(log n)比起线性查找O(n)更为高效。
1.2、整理扑克插入排序算法
①问题描述 在打牌时需要将手中的扑克牌从小到大排列。该过程通过不断将一张扑克牌插入到已经排序好的部分来实现。
②算法分析 扑克牌整理的过程本质上就是插入排序算法。在每一轮中从无序部分抽出一张扑克牌并将其插入到有序部分的正确位置直到所有扑克牌有序为止。
③算法本质 插入排序是一种简单且直观的排序算法适用于小规模的数据集。它的时间复杂度为 O(n^2)但在数据量较小或已接近有序时表现较好。
1.3、货币找零贪心算法
①问题描述 在超市购物时收银员需要找零。收银员会通过选择面额较大的货币来尽量减少找零次数。
②算法分析 该过程采用贪心算法每一步都选择当前最优的选择即用最大的面额找零直到达到所需的零钱。
③算法本质 贪心算法通过在每个步骤选择局部最优解来期望得到全局最优解。尽管这种策略在某些情况下无法保证最优解但对于大多数货币找零问题它能够提供有效的解决方案。
2、算法与数据结构
2.1、算法定义
①定义解决特定问题的一组指令或操作步骤通常具备以下几个特性 i明确的问题定义包括输入和输出的清晰界定。 ii可行性算法能在有限的步骤、时间和内存空间内完成。 iii确定性算法的每个步骤都有明确的意义且在相同的输入和条件下输出结果是一致的。
2.2、数据结构定义
①定义组织和存储数据的方式包含数据内容、数据间的关系以及对数据的操作方法。其设计目标包括 i节省空间减少内存占用。 ii高效操作包括数据的访问、添加、删除和更新等操作。 iii简洁性数据结构应简洁并提供足够的逻辑信息帮助算法高效执行。 iv设计的权衡在设计数据结构时常常需要在不同方面作出权衡例如 链表在数据添加和删除上更便捷但牺牲了数据访问的速度。 图提供更丰富的逻辑信息但需要更多的内存空间。
2.3、数据结构与算法的关系
i数据结构是算法的基石算法需要基于某种数据结构来进行数据的存储和操作。 ii算法为数据结构注入生命力数据结构本身只能存储数据通过算法才能实现对数据的操作和问题的解决。 iii算法的执行效率与数据结构密切相关不同的数据结构在执行同一个算法时可能会导致效率上的差异选择合适的数据结构至关重要。
类比拼装积木数据结构与算法可以比作一套拼装积木 输入数据未拼装的积木。 数据结构积木的组织形式包括形状、大小、连接方式等。 算法一系列拼装积木的操作步骤。 输出数据最终拼装好的积木模型。
2.4、独立于编程语言
数据结构和算法是独立于编程语言的概念。不仅应用于某种编程语言还在多种编程语言中实现。这使得数据结构和算法的学习具有广泛的适用性。