排序算法用到分治思想的两个:归并排序与快速排序
1.归并排序算法
对一组数进行排序,数组长度为N,将数组均分为两部分(或者N为奇数时相差一个),然后递归对每一部分进行分治排序。
递归边界:数组长度小于等于1
递归主体:
- 将数组均分为两个数组Left和Right
-
对两个数组分别排序
- 将两个数组组合起来:判断左右数组每一个元素的大小,按照顺序放进一个新的数组,此部分时间复杂度:对输入数组长度为m时:最坏情况(),最好情况(),平均()
- 返回数组
递归的结果就是树结构,这里由于分两个数组,所以是二叉树,并且左右数组是大致相等的。
时间复杂