263 字
1 分钟
递归,分治
递归
- 递归其实很好理解,类比于数学数列的递推,或者说数学归纳法
- 用cpp的语言来说就是函数不断地调用自身
- 递归的核心思想就是把原问题分解成重复的子问题,也就是分治
- 比如怎么排序,一种方法是先排左后排右,至于怎么排,就再执行前面一句话(这也是一种重要的排序方式,即快速排序)
为什么用递归?
- 代码简简洁,可读性强
- 更利于维护和调试
分治
- 上面也说了,分治思想就是把原问题分解成重复的子问题
- 分治的流程就是 分解->解决->合并
- 注意,分治是思维方式,递归是实现方法,分治很大程度都是基于递归的
快速排序
- 下面我将用最基本的快速排序讲解递归和分治
- 快排的基本原理就是上面的例子,不断的二分分解,排序,然后合并
部分信息可能已经过时