您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
本篇内容主要讲解“python归并排序实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“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归并排序实例分析”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。