Python:归并排序算法
来源:互联网 发布:电脑屏幕录像软件推荐 编辑:程序博客网 时间:2024/06/06 02:25
归并排序算法:空间复杂度为O(n),时间复杂度为O(n log n),算法稳定,不具有适应性
1、将序列分两左右两部分
2、递归,重复第一步,直到左右两部分里面的元素数量为1
3、合并每个左右的部分,从小到大
4、完成合并
算法的稳定性是指:对于待排序的序列中,相同项的原来次序不能被改变
算法的适应性是指:算法因原序列有序而更高效
def merge_sort(lst): if len(lst) <= 1: return lst mid = len(lst) // 2 print 'left: ', lst[: mid] print 'right: ', lst[mid:] print '&&&&&' left = merge_sort(lst[: mid]) right = merge_sort(lst[mid:]) return merge(left, right)def merge(left, right): print 'left: ', left print 'right: ', right res = [] i, j = 0, 0 while i < len(left) and j < len(right): if left[i] <= right[j]: res.append(left[i]) i += 1 else: res.append(right[j]) j += 1 res += left[i:] res += right[j:] print 'res: ', res print '***' return res
阅读全文
0 0
- Python归并排序算法
- Python:归并排序算法
- 排序算法(python)-归并排序
- Python算法 归并排序和快速排序
- python实现排序算法二:归并排序
- 排序算法C++&&Python实现---归并排序
- 排序算法C++&&Python实现---归并排序
- python算法实践7-归并排序
- 归并排序算法的python实现
- python算法实现系列-归并排序
- python数据结构与算法 34 归并排序
- 排序算法—归并排序算法分析与实现(Python)
- 排序算法总结(归并排序、快速排序)(python实现)
- [排序] 归并排序(Python)
- 排序算法-归并排序
- 排序算法------归并排序
- 排序算法-归并排序
- 排序算法---归并排序
- html5中新添加的元素与移除的元素
- AnyCasting.2.4[铸造模拟软件最新+天喻CAD2005完美
- json格式对象和数组的不同处理方法
- ListView里如果有EditText,Edittext的值修改后,会触发其他的item里EditText的addTextChangedListener,导致数据重复
- Hbase的应用场景、原理及架构分析
- Python:归并排序算法
- c++虚函数的内存模型
- 第4章 CloudStack的安装与配置
- 从VS开始
- [Python]理解Python深拷贝DeepCopy与浅拷贝ShallowCopy
- 最短路径算法—Floyd(弗洛伊德)算法
- 258. Add Digits
- source bash_profile是干啥的
- 关于component-scan中base-package包含通配符的问题探究