什么是分治算法

分治算法就是一个规模为n的问题,拆分成k个比n规模小的小问题,利用递归的方式进行解决,最后再将所有的小问题合并返回到原问题的解。

分治算法可以解决哪些问题

1.二分查找,2.大整数乘法,3.Strassen矩阵乘法,4.棋盘覆盖,5.合并排序,6.快速排序,7.线性时间选择,8.最接近点对问题,9.循环赛日程表,10.汉诺塔等

分治算法案例,求最大子数组问题。

 

 

  解法1暴力求解

这里的解法使用了三个for循环。

 

 

 

 

 

 

   解法2分治法

 

我个人理解分治法就跟切菜差不多,需要在菜中间切开,然后再一起切碎,不同的是,菜只需要切一次就够了,而分治法则是每次都切中间。