Python归并排序(递归实现)
时间:2014-05-09 03:44:58
收藏:0
阅读:386
为什么归并排序如此有用?
1.
快捷和稳定
归并排序成为?一个非常棒的排序算法主要是因为它的快捷和稳
定。它的复杂度即使在最差情况下都是O(n log
n)。而快速排序
在最差情况下的复杂度是O(n^2),当n=20的时候,它比归并要
慢4.6倍。
2.容易实现
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 |
#coding:utf-8def 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]) |
评论(0)