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使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
Python生成随机密码的方法
Jun 16 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
基于Pandas读取csv文件Error的总结
Jun 15 Python
python 实现得到当前时间偏移day天后的日期方法
Dec 31 Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 Python
Python语言进阶知识点总结
May 28 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
python求前n个阶乘的和实例
Apr 02 Python
IDLE下Python文件编辑和运行操作
Apr 25 Python
Python参数传递及收集机制原理解析
Jun 05 Python
Python实现双向链表
May 25 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
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php上传excel表格并获取数据
2017/04/27 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
javascript判断office版本示例
2014/04/11 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
Python简单获取自身外网IP的方法
2016/09/18 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
pytorch梯度剪裁方式
2020/02/04 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
new修饰符是起什么作用
2015/06/28 面试题
shell的种类有哪些
2015/04/15 面试题
护士感人事迹
2014/05/01 职场文书
小学数学教研活动总结
2014/07/01 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
读群众路线的心得体会
2014/09/03 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
比赛主持人开场白
2015/05/29 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
PO模式在selenium自动化测试框架的优势
2022/03/20 Python