1.排序算法:
到底什么是排序?- 它是排列列表中项目顺序的算法。
重要的排序算法——
-
冒泡排序:冒泡排序是最基本的排序算法,如果相邻元素无序,它会通过重复交换相邻元素来工作。
-
合并排序:合并排序是一种使用分治策略的排序技术。
-
快速排序:快速排序是一种流行的排序算法,在对包含 n 个元素的数组进行排序时,平均执行 n log n 次比较。它是一种更高效、更快的排序算法。
-
堆排序:堆排序通过将数组元素可视化为一种特殊类型的完整二叉树(称为堆)来工作。
2. 搜索算法:
究竟是什么搜索?- 它是在数据集中找到元素的算法。
重要的搜索算法——
-
二分搜索:二分搜索采用分而治之的策略,其中一个排序列表被分成两半,并将项目与列表的中间元素进行比较。如果找到匹配项,则返回中间元素的位置。
-
广度优先搜索(BFS):广度优先搜索是一种图遍历算法,从根节点开始,探索所有相邻节点。
-
深度优先搜索(DFS):深度优先搜索(DFS)算法从图的第一个节点开始,然后越来越深,直到我们找到目标节点或没有子节点的节点。
3.动态规划:
动态规划 (DP) 是一种通过将优化问题分解为更简单的子问题并利用整体问题的最优解依赖于其子问题的最优解这一事实来解决优化问题的算法技术。
4.递归算法:
递归是一种解决问题的技术,其中解决方案依赖于同一问题的较小实例的解决方案。计算阶乘是递归编程的一个经典例子。
每个递归程序都遵循相同的基本步骤序列:
-
设置算法。递归程序通常需要一个种子值,开始。这是通过使用传递给函数的参数或通过提供为递归计算设置种子值的非递归网关函数来实现的。
-
检查正在处理的当前值是否对应于基本情况。如果是,则处理该值并返回它。
-
用更小或更简单的子问题或子问题来重新表述解决方案。
-
将算法应用于子问题。
-
为了制定答案,结合结果。
-
返回结果。
5. 分而治之:
分治算法递归地将一个问题划分为两个或多个相同或相关类型的子问题,直到它们简单到可以直接解决。
分而治之算法包括使用下面列出的三个步骤的争议。
-
将原 问题分解为子问题。
-
征服:递归地一次解决每个子问题。
-
组合:将子问题的解决方案放在一起,以获得整个问题的解决方案。
6. 散列:
散列是一种使用散列函数将键和值映射到散列表中的技术或过程。这样做是为了更快地访问元素。映射的效率由散列函数的效率决定。
评论:
2024-07-25 19:12