分治法,动态规划法,贪心法,回溯法主要概括

分治法,动态规划法,贪心法,回溯法主要概括_第1张图片

目录

分治法,动态规划法,贪心法,回溯法主要概括

  • 1.前言
  • 2.分治法
    • 2.1基本思想:
    • 2.2适用条件:
    • 2.3时间复杂度:
    • 2.4主要解决:
    • 2.5关键字:
    • 2.6其他:
  • 3.动态规划法
    • 3.1基本思想:
    • 3.2适用条件:
    • 3.3时间复杂度:
    • 3.4主要解决:
    • 3.5关键字:
  • 4.贪心法
    • 4.1基本思想:
    • 4.2时间复杂度:
    • 4.3主要解决:
    • 4.4时间复杂度:
    • 4.5关键字:
  • 5.回溯法
    • 5.1基本思想:
    • 5.2时间复杂度:
    • 5.3主要解决:
    • 5.4其他:
  • 总结
  • 参考


1.前言

分治法,动态规划法,贪心法,回溯法主要概括

2.分治法

2.1基本思想:

讲一个复杂问题分解为若干规模较小且结构与原问题相似的子问题,然后递归解决这些子问题,最后将子问题的解合并得到原问题的解。

2.2适用条件:

1.问题可以被划分为相互独立且同质的子问题。
2.子问题的解可以合并为原问题的解。
3.子问题的规模足够小,可以直接求解。

2.3时间复杂度:

通常为O(nlogn)

2.4主要解决:

求解最优子结构
最大子数组和问题

2.5关键字:

分解子问题,递归解决,分币

2.6其他:

归并排序和快速排序都是使用分治法的经典算法。

3.动态规划法

3.1基本思想:

将原问题分解为若干重叠子问题,通过求解子问题的最优解得到原问题的最优解。使用一个表格来存储子问题的最优解,避免重复计算

3.2适用条件:

原问题可被分解为重叠的子问题

3.3时间复杂度:

不一定看具体算代码 通常为O(n^2)或
O(n^3)

3.4主要解决:

背包,0-1,公共子序列

3.5关键字:

全局最优解

4.贪心法

4.1基本思想:

每一步都选择当前看起来的最优解,不考虑未来,通过一系列的局部最优解,希望得到全局最优解。

4.2时间复杂度:

通常为O(n)

4.3主要解决:

霍夫曼编码、最小生成树(如Prim算法和Kruskal算法),背包问题,任务调度

分治法,动态规划法,贪心法,回溯法主要概括_第2张图片

4.4时间复杂度:

通常为O(n),因为贪心算法只需一次遍历即可得到解

4.5关键字:

局部最优解

5.回溯法

5.1基本思想:

通过逐步构建解的集合,当发现当前候选解不能满足问题的约束条件时,回溯到上一步进行其他选择,直到找到满足问题的解或者遍历完所有可能的选择

5.2时间复杂度:

取决于问题的规模和解的数量,通常为指数级别的复杂度。

5.3主要解决:

N皇后,迷宫问题

5.4其他:

回溯算法是一种通过穷举所有可能的解并逐步构建答案的方法。

总结

参考

给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

你可能感兴趣的:(软件设计师,日积月累,动态规划,算法)