python 实现归并排序算法


Posted in Python onJune 05, 2012

理论不多说:

#!/usr/bin/python 
import sys def merge(array, q, p, r): 
left_array = array[q:p+1] 
right_array = array[p+1:r+1] 
left_array_num = len(left_array) 
right_array_num = len(right_array) 
i, j , k= [0, 0, q] 
while i < left_array_num and j < right_array_num: 
if (left_array[i] < right_array[j]): 
array[k] = left_array[i] 
i+=1 
else: 
array[k] = right_array[j] 
j+=1 
k+=1 
while i < left_array_num: 
array[k] = left_array[i]; 
k+=1 
i+=1 
while j < right_array_num: 
array[k] = right_array[j] 
k+=1 
j+=1 
def merge_sort(array, q, r): 
if q < r: 
p = (q + r) / 2 
merge_sort(array, q, p) 
merge_sort(array, p + 1, r) 
merge(array, q, p, r) 
if __name__ == "__main__": 
array = [2, 45, 5, 7, 34, 456, 345, 89, 8, 1, 341, 4, 98, 67] 
merge_sort(array, 0, len(array) - 1) 
for a in array: 
sys.stdout.write("%d " % a)
Python 相关文章推荐
Python聚类算法之DBSACN实例分析
Nov 20 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
Python实现多进程的四种方式
Feb 22 Python
python日志logging模块使用方法分析
May 23 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
python中upper是做什么用的
Jul 20 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
Python3如何实现Win10桌面自动切换
Aug 11 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 11 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
python+opencv实现目标跟踪过程
Jun 21 Python
python 实现插入排序算法
Jun 05 #Python
python 算法 排序实现快速排序
Jun 05 #Python
python操作MySQL数据库的方法分享
May 29 #Python
python利用elaphe制作二维条形码实现代码
May 25 #Python
用python实现批量重命名文件的代码
May 25 #Python
删除目录下相同文件的python代码(逐级优化)
May 25 #Python
ssh批量登录并执行命令的python实现代码
May 25 #Python
You might like
php allow_url_include的应用和解释
2010/04/22 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
javascript闭包的理解和实例
2010/08/12 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
详解Python字符串对象的实现
2015/12/24 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
python 实现矩阵按对角线打印
2019/11/29 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
如何写一份好的自荐信
2014/01/02 职场文书
办理生育手续介绍信
2014/01/14 职场文书
市场营销专业求职信
2014/06/17 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
电子商务实训报告总结
2014/11/05 职场文书
经营目标责任书
2015/05/08 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS