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 七种邮件内容发送方法实例
Apr 22 Python
python脚本实现分析dns日志并对受访域名排行
Sep 18 Python
在Python中处理时间之clock()方法的使用
May 22 Python
python 中的int()函数怎么用
Oct 17 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
Django学习之文件上传与下载
Oct 06 Python
python中怎么表示空值
Jun 19 Python
Django如何重置migration的几种情景
Feb 24 Python
Python爬取网站图片并保存的实现示例
Feb 26 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
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
在js中使用&quot;with&quot;语句中跨frame的变量引用问题
2007/03/08 Javascript
JavaScript Archive Network 集合
2007/05/12 Javascript
犀利的js 函数集合
2009/06/11 Javascript
JS获取父节点方法
2009/08/20 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
动态加载dtree.js树treeview(示例代码)
2013/12/17 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
Python中的heapq模块源码详析
2019/01/08 Python
python计算无向图节点度的实例代码
2019/11/22 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
Python实现转换图片背景颜色代码
2020/04/30 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
Java面向对象面试题
2016/12/26 面试题
我未来的职业规划范文
2014/01/11 职场文书
课题研究阶段性总结
2015/08/13 职场文书
生日寿星公答谢词
2015/09/29 职场文书
python pyhs2 的安装操作
2021/04/07 Python
如何Tomcat中使用ipv6地址
2022/05/06 Servers