重要的算法问题类型
- 查找问题
- 排序问题
- 图问题
- 组合问题
- 几何问题
- 基本思想:把一个规模为 n n n的问题分解为两个或者多个较小的、与原问题类型相同的子问题,再对子问题求解,然后把子问题的解合并起来从而得到整个问题的解,即对问题分而治之。如果子问题的规模仍然相当大,不能容易地求解得到它们的解,这时可以对子问题重复地利用分治策略。
- 适用特征:
- 问题具有最优子结构性质,可以被分解为若干个规模较小的、独立的子问题。
- 问题在规模缩小到一定程度时容易求解。
- 可以自底向上的合并子问题的解,得到最终的解。
- 算法实现:可以递归实现,也可以非递归实现。一