小园的景色,比想象的绿,绿色世界里溢出的那股泥土味,流过背着阳光的小土丘,一大片嫩绿涌入眼底,一粒粒草叶上滑落的雨滴,一朵朵淡黄的小花含着笑将露滴入另一处世界。
本文实例讲述了Python实现的归并排序算法。分享给大家供大家参考,具体如下:
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
Python实现代码如下:
#-*- 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程序设计有所帮助。
本文Python实现的归并排序算法示例到此结束。当我们容许别人掌握住我们情绪时,我们便觉得自已是受害者,对现况无能为力,抱怨与愤努成为我们唯一的选择。小编再次感谢大家对我们的支持!