为什么归并排序如此有用?
1. 快捷和稳定
归并排序成为⼀一个非常棒的排序算法主要是因为它的快捷和稳
定。它的复杂度即使在最差情况下都是O(n log n)。而快速排序
在最差情况下的复杂度是O(n^2),当n=20的时候,它比归并要
慢4.6倍。
2.容易实现
#coding:utf-8 def merge_sort(array): length = len(array) if length <= 1: return array m = length / 2 left = array[:m] right = array[m:] left = merge_sort(left) right = merge_sort(right) return merge(left,right) def merge(left,right): result = [] while len(left)>0 and len(right)>0 : if left[0] <= right[0]: result.append(left.pop(0)) else: result.append(right.pop(0)) result.extend(left) result.extend(right) return result if __name__ == '__main__': print merge_sort([33,11,2,3,7,2234234234234234,4,23,2,3,4,7]) print merge_sort([0,1,2,3,4,5,5,6,7,8,9]) print merge_sort([9,8,7,6,5,5,4,3,2,1,0])