Python实现归并排序
来源:互联网 发布:mmd的动作数据 编辑:程序博客网 时间:2024/06/06 03:54
归并排序
归并排序是典型的分治法的应用
思想:先递归分解数组,再合并数组
原理:将数组分解最小之后,然后合并两个有序数组,基本思想是比较两个数组的最前面的数,谁小就取谁,取完后,将相应的指针后移以为。然后再比较,直到一个数组为空,最后把另一个数组的剩余部分复制过来即可。
Python代码实现:
归并排序def merge_sort(alist): if len(alist) <= 1: return alist # 二分分解 num = len(alist) / 2 left = merge_sort(alist[:num]) right = merge_sort(alist[num:]) # 合并 return merge(left, right)def merge(left, right): '''合并操作,将两个有序数组left[]和right[]合并成一个大的有序数组''' # left与right的下标指针 l, r = 0, 0 result = [] while l < len(left) and r < len(right): if left[l] < right[r]: result.append(left[l]) l += 1 else: result.append(right[r]) r += 1 result += left[l:] result += right[r:] return resultalist = [54, 26, 93, 17, 77, 31, 44, 55, 20]sorted_alist = merge_sort(alist)print(sorted_alist)
时间复杂度:
最优时间复杂度:O(nlongn)
最坏时间复杂度 :O(nlongn)
稳定性:稳定
阅读全文
1 0
- python实现归并排序
- Python 实现归并排序
- python实现归并排序
- Python实现归并排序
- python实现归并排序
- Python实现归并排序
- python实现归并排序
- 归并排序的Python实现
- 归并排序及Python实现
- 用python实现归并排序
- 利用Python实现归并排序
- 归并排序实现(python)
- 用python实现归并排序
- 归并排序详解(python实现)
- 使用python实现归并排序
- 归并排序的Python实现
- python实现快速排序和归并排序
- python实现排序算法二:归并排序
- spring-boot+spring-retry
- JBPM介绍
- Git 提交过程
- 包子凑数
- ARM-Linux嵌入式汇编笔记
- Python实现归并排序
- Linux 下安装 LAMP及配置
- 算法导论-散列表-MIT6.006 Lecture 8
- 【深度学习框架Caffe学习与应用】第五课 自定义神经层和数据输入层
- Java中的数据类型
- 邮件发送
- 利用itext操作pdf从数据库导出大量数据--创建PDF表格(三)
- MySql 事务介绍
- 关于unity2017版本出的TimelineAPI