update readme.md
This commit is contained in:
@@ -3,13 +3,14 @@
|
||||
详细介绍每一种算法设计的思路,并为每种方法给出一个经典案例的详细解读,总结对应设计思路,最后给出其它案例,以供参考。
|
||||
|
||||
|
||||
* [递归](递归.md)
|
||||
* [分治算法](分治算法.md)
|
||||
* [动态规划](动态规划.md)
|
||||
* [回溯法](回溯法.md)
|
||||
* [迭代法](迭代法.md)
|
||||
* [穷举搜索法](穷举搜索法.md)
|
||||
* [动态规划](动态规划.md)
|
||||
* [贪心算法](贪心算法.md)
|
||||
* [回溯法](回溯法.md)
|
||||
* [分治算法](分治算法.md)
|
||||
* [递归](递归.md)
|
||||
* [贪心算法](贪心算法.md)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -28,7 +29,6 @@
|
||||
## 参考
|
||||
|
||||
《算法设计与分析基础》 Anany Levitin
|
||||
http://www.chinaunix.net/old_jh/23/437639.html
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,12 +5,13 @@
|
||||
|
||||
分治算法常用`递归`实现
|
||||
|
||||
1) 问题缩小的小规模可以很容易解决
|
||||
2) 问题可以分解为规模较小相同问题
|
||||
3) 子问题的解可以合并为该问题的解
|
||||
4) 各个子问题相互独立,(如果这条不满足,转为`动态规划`求解)
|
||||
1)问题缩小的小规模可以很容易解决
|
||||
2)问题可以分解为规模较小相同问题
|
||||
3)子问题的解可以合并为该问题的解
|
||||
4)各个子问题相互独立,(如果这条不满足,转为`动态规划`求解)
|
||||
|
||||
分治法的步骤:
|
||||
|
||||
1. 分解
|
||||
2. 解决
|
||||
3. 合并
|
||||
@@ -24,6 +25,6 @@
|
||||
|
||||
#### 其它案例
|
||||
|
||||
快速排序
|
||||
归并排序
|
||||
最大子数组和
|
||||
* 快速排序
|
||||
* [归并排序](../6%20Sort/README.md)
|
||||
* 最大子数组和
|
||||
|
||||
@@ -49,7 +49,8 @@ DP通常基于一个递推公式及一个(或多个)初始状态,当前子问
|
||||
|
||||
### DP VS 分治法
|
||||
|
||||
与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。
|
||||
与[分治法](分治算法.md)不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。
|
||||
若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
在 `递推` 阶段,将大的问题分解成小的问题
|
||||
在 `回归` 阶段,获得最简单问题的解后,逐级返回,依次得到稍微复杂情况的解,知道获得最终的结果
|
||||
|
||||
1) 确定递归公式
|
||||
1) 确定递归公式 , 比如 斐波那契数列 问题中的 `fib(n)=fib(n-1)+fib(n-2)`
|
||||
2) 确定边界条件
|
||||
|
||||
> 自顶向下的递归,自底向上是迭代
|
||||
|
||||
Reference in New Issue
Block a user