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的汉字转GBK码实现代码
Feb 19 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
Apr 16 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 Python
一份python入门应该看的学习资料
Apr 11 Python
python 以16进制打印输出的方法
Jul 09 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
Python中numpy模块常见用法demo实例小结
Mar 16 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
使用Python实现分别输出每个数组
Dec 06 Python
Python高阶函数、常用内置函数用法实例分析
Dec 26 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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
10个实用的PHP正则表达式汇总
2014/10/23 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
numpy.where() 用法详解
2019/05/27 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
python视频按帧截取图片工具
2019/07/23 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
基于Python实现简单学生管理系统
2020/07/24 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
android面试问题与答案
2016/12/27 面试题
如何手工释放资源
2013/12/15 面试题
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
生产管理的三大手法
2013/11/11 职场文书
六十岁生日答谢词
2014/01/10 职场文书
最新会计专业求职信范文
2014/01/28 职场文书
保险公司晨会主持词
2014/03/22 职场文书
检举信的格式及范文
2014/04/04 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
集团财务总监岗位职责
2015/04/03 职场文书