python实现排序算法二:归并排序
来源:互联网 发布:java adb命令 编辑:程序博客网 时间:2024/06/05 14:37
##归并排序
##基本思想:对于两个排好序的数组A和B,逐一比较A和B的元素,将较小值放入数组C中,当A或者B数组元素查询完后,将A或者B剩余的元素直接添加到C数组中,此时C数组即为有序数组,这就是归并排序原理
##step1:对于一个无序数组A,可以取A元素中间索引,将A数组分为两个部分A1,A2;
##step2:递归A1,A2,分别将A1,A2分为A11,A12和A21,A22两部分直至只有一个元素;
##step3:对于只有一个元素的数组来讲,其是有序的,因此,对于两个只有一个元素的数组,可以根据基本思想所述合成一个数组C,最后得到有序数组
代码如下:
##归并排序def merge(left, right):l = 0r = 0result = []while l < len(left) and r < len(right):if left[l] < right[r]:result.append(left[l])l += 1else:result.append(right[r])r += 1result += left[l:]result += right[r:]return resultdef mergesort(array):if len(array) <= 1:return arraynum = int(len(array)/2)left = mergesort(array[:num])right = mergesort(array[num:])return merge(left, right)if __name__ == '__main__':b = [1, 22, 90, 4, 65, 3, 73, 8]print(b)a = mergesort(b)print(a)
0 0
- python实现排序算法二:归并排序
- 排序算法C++&&Python实现---归并排序
- 排序算法C++&&Python实现---归并排序
- 排序算法总结(归并排序、快速排序)(python实现)
- python二路归并排序实现法
- Python实现二路归并排序
- 二路归并排序Python实现
- 实现二路归并排序算法
- 排序算法(python)-归并排序
- Python归并排序算法
- Python:归并排序算法
- 归并排序算法的python实现
- python算法实现系列-归并排序
- 插入排序算法&二路归并排序算法java实现
- 算法基础:排序(二)——归并排序——Python实现
- 排序算法—归并排序算法分析与实现(Python)
- python实现归并排序
- Python 实现归并排序
- 初学飞行器之环境搭建(基于Linux)
- kibana4 插件开发1-基础篇
- php定时修改sql数据,谁能破?
- js将时间戳转化为实践
- RxJava教程
- python实现排序算法二:归并排序
- Oracle数据库触发器
- APP开发实战161-图片格式的选择
- 【原创】【数据结构】一维树状数组的基本操作(单点修改,区间查询) (HDU1166 敌兵布阵)
- 输出各种形式的1到10
- avi 格式解析
- 几个简单动画属性使用
- Maven+SSM框架(Spring+SpringMVC+MyBatis)
- 前端无框架式剪切板--clipboardjs