原理分析
成都创新互联一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以网站制作、成都网站制作、移动互联产品、营销型网站服务为核心业务。10多年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。
1、把一个序列从中间位置分成两个序列;
2、把这两个子序列按第一步继续分成两部分;
3、直到所有子序列的长度都是1,也就是说,不能再有二分截止。此时再两两合并成一个有序的序列。
实例
def merge(arr, low, mid, high): # low 和 high 为整个数组的第一个和最后一个位置索引,mid 为中间位置索引 # i 和 j 为指针,最初位置分别为两个有序序列的起始位置 # ltmp 用来存放合并后的序列 i = low j = mid+1 ltmp = [] while i <= mid and j <= high: # 只要左右两边都有数 if arr[i] < arr[j]: # 当左边的数小于右边的数 ltmp.append(arr[i]) # 将左边的数存入 ltmp i += 1 # 左边的指针往右移一位 else: # 当右边的数小于左边的数 ltmp.append(arr[j]) # 将右边的数存入 ltmp j += 1 # 右边的指针往右移一位 # 上面的 while 语句执行完后,左边或者右边没有数了 while i <= mid: # 当左边还有数的时候 ltmp.append(arr[i]) # 将左边剩下的数全部存入 ltmp i += 1 while j <= high: # 当右边还有数的时候 ltmp.append(arr[j]) # 将右边剩下的数全部存入 ltmp j += 1 arr[low:high+1] = ltmp # 将排序后的数组写回原数组 def merge_sort(arr, low, high): # low 和 high 为整个数组的第一个和最后一个位置索引 if low < high: # 至少有两个元素 mid = (low + high) // 2 merge_sort(arr, low, mid) # 把左边递归分解 merge_sort(arr, mid+1, high) # 把右边递归分解 merge(arr, low, mid, high) # 做归并
以上就是python归并排序的实现原理,希望对大家有所帮助。更多Python学习指路:创新互联Python教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
当前文章:创新互联Python教程:python归并排序的实现原理
本文URL:http://www.mswzjz.cn/qtweb/news49/522899.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能