说明
1、合并排序是一种高效稳定的合并运算排序算法,是采用分治方法的典型应用。
2、基本思想大致如下:首先,通过递归将给定的数组分成两部分,然后根据大小进行两次大小比较,最后逐步合并完成整体排名。
合并排序更有效。它设置了n列长,将数列分为小数列,这需要logn步骤。每一步都是一个合并有序数列的过程,时间复杂性为o(nlogn),即O(n)。
实例
importrandom defConfiationAlgorithm(str): iflen(str)<=1:#子序列 returnstr mid=(len(str)/2) left=ConfiationAlgorithm(str[:mid])#递归切片操作 right=ConfiationAlgorithm(str[mid:len(str)]) result=[] #i,j=0,0 whilelen(left)>0andlen(right)>0: if(left[0]<=right[0]): #result.append(left[0]) result.append(left.pop(0)) #i+=1 else: #result.append(right[0]) result.append(right.pop(0)) #j+=1 if(len(left)>0): result.extend(ConfiationAlgorithm(left)) else: result.extend(ConfiationAlgorithm(right)) returnresult if__name__='__main__': a=[20,64,16,8,0,99,24,75,100,69] printConfiationAlgorithm(a) b=[random.randint(1,1000)foriinrange(10)] printConfiationAlgorithm(b)
以上是对python合并排序的理解,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。