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根据出生日期返回年龄的方法
Mar 26 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
Django中信号signals的简单使用方法
Jul 04 Python
python3.7 的新特性详解
Jul 25 Python
python 创建一维的0向量实例
Dec 02 Python
Python openpyxl模块实现excel读写操作
Jun 30 Python
python制作抽奖程序代码详解
Jan 15 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
Feb 19 Python
python解决OpenCV在读取显示图片的时候闪退的问题
Feb 23 Python
用Python将库打包发布到pypi
Apr 13 Python
python如何读取.mtx文件
Apr 22 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
php读取msn上的用户信息类
2008/12/05 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
探讨php中header的用法详解
2013/06/07 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
php可变长参数处理函数详解
2017/02/22 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
Python自动登录126邮箱的方法
2015/07/10 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
阿里旅行:飞猪
2017/01/05 全球购物
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
乡镇消防安全责任书
2014/07/23 职场文书
防灾减灾标语
2014/10/07 职场文书
裁员通知
2015/04/25 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
新闻报道稿范文
2015/07/23 职场文书
深入理解python多线程编程
2021/04/18 Python
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python