概述
分析方法总结:
- 排序
- 递归
- 分而治之
- 动态规划
- 贪婪算法
- 排除法
- 逐步改进
1. 排序
遇到数组问题,第一反应就是先排序
2. 递归
当一个大问题能够分解成多个结构相同的子问题时,使用递归处理
3. 分而治之
把问题分解成若干个规模更小的子问题。如果子问题容易解决,那么解决子问题后,把所有结果整合起来便形成原有问题的解。
归并排序是典型的分而治之策略。
4. 动态规划
动态规划主要用来处理最优化问题,当题目中出现类似“成本最少”,“路径最短”等表示求极值的意思时,就必须要考虑动态规划。
5. 贪婪算法
贪婪算法也是解决最优化问题的一种算法模式。它的思想是,要达到全局最优化,可以尝试让每个局先达到最优化,然后看整体是否能达到最优化。
最小生成树、霍夫曼编码、最小点集覆盖等问题都可以用贪婪算法求解。
6. 排除法
排除法的核心是不断去掉不满足条件的结果,直到剩下能够满足条件的结果。
二分查找法是排除法最经典的应用。
7. 逐步改进
当用遍所有方法都不能找到问题最优解时,可以退而求其次,先找一个次优解,然后通过反复调整和不断改进,让次优解越来越接近最优解。