本篇内容介绍了“python中的归并排序是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
说明
1、归并排序是一种高效、稳定的合并运算排序算法,它是采用分治方法的典型应用。
2、基本思想大致为:首先通过递归的方式将给定的数组二分为二分,再按大小比较进行两次大小比较排序,最后逐级合并完成总体的排序。
归并排序更有效,它设置了n个列长,将数列分成小数列,需要logn步骤,每个步骤都是一个合并有序数列的过程,时间复杂性为O(nlogn),即O(n)。
实例
import random
def ConfiationAlgorithm(str):
if len(str) <= 1: #子序列
return str
mid = (len(str) / 2)
left = ConfiationAlgorithm(str[:mid])#递归的切片操作
right = ConfiationAlgorithm(str[mid:len(str)])
result = []
#i,j = 0,0
while len(left) > 0 and len(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))
return result
if __name__ == '__main__':
a = [20,30,64,16,8,0,99,24,75,100,69]
print ConfiationAlgorithm(a)
b = [random.randint(1,1000) for i in range(10)]
print ConfiationAlgorithm(b)
“python中的归并排序是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://www.py.cn/jishu/jichu/31975.html