算法
是对特定问题求解步骤的一种描述,是指令的有限序列。
五个算法的重要特性:
1.有穷性:有穷步,有穷时间
2.确定性:指令没有二义
3.可行性:操作能通过运算实现
4.输入:有输入
5.输出:有输出
四大常见算法:
分治法:
基本思想:将难的大问题分解成规模小的相同问题,各个击破,分而治之。
时间复杂度:大多为n㏒n
动态规划法:(求最优解)
基本思想:待求解问题分解(与分治法相同),分解的问题相互不独立(与分治法不同)
使用情况:最优子结构
重叠子问题
典型实例:0-1背包问题
贪心法:(求最优解)
基本思想:根据当前已有的信息做出选择,且做出了就不会变。局部最优
使用情况:最优子结构
贪心选择性质
典型实例:背包问题
回溯法:(通用的解题法)
基本思想:从根结点出发,深度优先搜索整个解空间。系统的搜索一个问题的所有解或任一解。
典型实例:n皇后问题
以上是常见的算法,当然算法不止于此。我们应该根据问题和要 求的解选择合适的算法。