分而治之,(分解,求解,合并)
分治和递归结合有很多效果
(1)二分搜索
二分查找,找中间位置,函数要有四个参数,(数组,左边界限,右边界限,需要找的数key)
mid=(left+right)/2;
三个if判断:
如果相等,return 位置
如果大于key 找左边 left~mid-1
else mid+1~right
----------------------------------------------------------
(2)大整数乘法
(3)Strassen矩阵乘法
(4)棋盘覆盖
(5)合并排序
(6)快速排序
(7)线性时间选择
(8)最接近点对问题
(9)循环赛日程表
(10)汉诺塔 a b c 三根柱子,四根都移动到b
分治,相当于三根移动到c 俩根移动到b,一根移动到c;
yd(i-1,a,c,b); //三根柱子由a移动到c,b缓冲;
yd(i-1,c,b,a);//相当于第四根柱子已经放到b,把剩下的都放到b
具体源码参考这位大佬: https://www.cnblogs.com/xsyfl/p/6921687.html