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中使用OpenCV进行人脸检测的例子
Apr 18 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
独特的python循环语句
Nov 20 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
利用Pyhton中的requests包进行网页访问测试的方法
Dec 26 Python
postman和python mock测试过程图解
Feb 22 Python
python with语句的原理与用法详解
Mar 30 Python
django实现日志按日期分割
May 21 Python
Python就将所有的英文单词首字母变成大写
Feb 12 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过滤危险html代码的函数
2008/07/22 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
jquery中获取id值方法小结
2013/09/22 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
Python生成pdf文件的方法
2014/08/04 Python
深入理解Python中的super()方法
2017/11/20 Python
python opencv之分水岭算法示例
2018/02/24 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
python中的数据结构比较
2019/05/13 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
解析python的局部变量和全局变量
2019/08/15 Python
Python tkinter常用操作代码实例
2020/01/03 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
医学生职业生涯规划书范文
2014/03/13 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
python使用torch随机初始化参数
2022/03/22 Python
Redis批量生成数据的实现
2022/06/05 Redis
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python
基于Python实现西西成语接龙小助手
2022/08/05 Golang