本文实例讲述了Python实现的归并排序算法。分享给大家供大家参考,具体如下:
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
Python实现代码如下:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#-*- coding: UTF-8 -*- import numpy as np def Merge(a, f, m, l): i = f j = m + 1 tmp = [] while i < = m and j < = l: if a[i] < = a[j]: tmp.append(a[i]) i + = 1 else : tmp.append(a[j]) j + = 1 while i < = m: tmp.append(a[i]) i + = 1 while j< = l: tmp.append(a[j]) j + = 1 i = f for x in xrange ( 0 , len (tmp)): a[i] = tmp[x] i + = 1 def MergeSort(a, f, l): if f< l: m = (l + f) / 2 MergeSort(a, f, m) MergeSort(a, m + 1 , l) Merge(a, f, m, l) if __name__ = = '__main__' : a = np.random.randint( 0 , 10 , size = 10 ) print "Before sorting..." print "---------------------------------------------------------------" print a print "---------------------------------------------------------------" MergeSort(a, 0 , a.size - 1 ) print "After sorting..." print "---------------------------------------------------------------" print a print "---------------------------------------------------------------" |
运行结果:
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://www.cnblogs.com/biaoyu/p/4831644.html