递归三要素:
递归函数以及参数
递归终止条件
递归单层搜索逻辑
示例
func test(level, param1, param2 int) {
//递归终止条件
if level > maxLevel {
break
}
//处理当前层
process(level, param1, param2)
//进入下一层
test(level+1, param1, param2)
//重置状态
reverse(level)
}
分治:
分治会将大问题拆解成小问题,拆解到最小问题之后,开始不断合并结果,递归是分治实现的一种形式或者是分治实现的一部分,分治包括三分部分,分解、计算、合并。分治的场景很多,例如快速排序,归并排序。