1. 贪婪算法

通过局部尽可能达到最优(贪婪的名字由来), 从而实现整体的最优, 贪婪算法不一定总是正确的, 因为每个局部最优并不代表整体最优, 但是在某些时候, 它是正确.

例如: 为了找出找出17美元61美分(用最少的纸币), 肯定是按照最大面额尽可能多得先找, 然后依次, 所以先找一个10美元的, 在找一个5美元的, 再找2个1美元的, 2个25美分和1个10美分, 1个1美分.

2. 分治算法

分治算法, 基本上就是软件设计模式的根基, 自顶向下方法基本上是一个意思, 分: 递归解决较小的问题, 治: 从子问题的解最后构建成原问题的解

3. 回溯算法

例如: 迷宫问题中走到某步后, 无路可走, 就需要回溯.