归并排序,即Merge_Sort,通过递归式的merge操作(merge即归并)实现排序。算法思想是分治思想(divide and conquer)。
归并排序一般是递归实现的
时间复杂度O(nlgn)
//递归都是一去一回,去的时候divide,回的时候conquer。(表达欠提炼)
1)divide,“分”
递归地将原来无序的序列分成两部分,直到每个表所含元素个数都变成1。
2)conquer,“治”
即 Merge。
merge操作实现的功能是:将两个有序表/有序序列归并成一个有序表/有序序列。方法是从两个表头元素开始依次比较,若从小到大排序,则每次取较小的一个,直到一个表取空,此时只需将另一个表剩余元素拿过来接到后面即可。
ps:第一步divide到最后只剩下一个元素时就成了有序表。
这一篇blog解释的既具体又形象:
http://www.cnblogs.com/jianboqi/archive/2013/01/15/2860500.html