排序算法(归并排序)

归并排序比较直观,设数组A被分为两部分A1和A2,并且A1和A2都是排好序的。

那么每次比较A1和A2的头两个元素,把最大的(最小的)取出来,当A1或者A2中

没有元素可取的时候,排序也就结束了。对于A1和A2的排序采用同样的方法。如果

A1或者A2只含一个元素,则已经排好了序。

复杂度:每次采用二分的办法划分数组,则

T(n) = 2T(n/2) + n = nlog(n).

归并排序的最好最坏复杂度均为 nlog(n).

你可能感兴趣的:(排序算法)