算法的六种思想(97%的算法题都基于这六种编程思想)

1、递归算法(Recursive Algorithm)

递归算法是一种自我调用的算法。

在解决问题时,它将问题拆分成更小的子问题,并通过调用自己来解决这些子问题。每个子问题又可以进一步拆分,直到达到基本情况,然后逐层返回结果,最终得到整个问题的解决方案。
image

2、贪心算法(Greedy Algorithm)

贪心算法是一种通过在每一步选择当前最优解来解决问题的策略。

它不考虑全局最优解,而是希望通过每次选择局部最优解来达到整体最优解。
image

3、分治算法 (Divide and ConquerAlgorithm)

分治算法是一种将复杂问题划分为更小的独立子问题,并对这些子问题进行解决的策略。

它将问题分解为多个部分,然后对每个部分进行处理,最后将它们合并成最终的解决方案。
image

4、回溯算法(Backtracking Algorithm)

回溯算法是一种通过不断尝试所有可能的解决方案,直到找到满足条件的解决方案的方法。

如果尝试的当前解决方案不满足条件,它会回溯到上一步,并继续尝试其他可能的选择,直到找到解决方案或者确定无解。
image

5、枚举算法(Brute Force Algorithm)

枚举算法是一种通过穷举所有可能的解决方案来解决问题的方法。

它不利用任何特定的策略,而是尝试所有可能的选择,直到找到满足条件的解决方案。
image

6、动态规划(Dynamic Programming)

动态规划是一种通过将问题拆分为更小的子问题,并将其解决方案存储起来,避免重复计算来优化求解过程的方法。

它使用一个表格或数组来保存子问题的解决方案,以便在需要时快速查找和使用。

通过解决子问题,动态规划能够逐步得到整个问题的解决方案。
image

posted @ 2024-06-24 13:15  盗梦笔记  阅读(38)  评论(0编辑  收藏  举报