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中 Lambda表达式全面解析
Nov 28 Python
Python实现合并两个列表的方法分析
May 28 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
Python语言进阶知识点总结
May 28 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
python读取word 中指定位置的表格及表格数据
Oct 23 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 Python
深度学习小工程练习之垃圾分类详解
Apr 14 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中Collection 类的设计
2013/06/21 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
Python中格式化format()方法详解
2017/04/01 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
网络书店创业计划书
2014/02/07 职场文书
大学生新学期计划书
2014/04/28 职场文书
批评与自我批评范文
2014/10/15 职场文书
会计简历自我评价
2015/03/10 职场文书
排球赛新闻稿
2015/07/17 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
小学思想品德教学反思
2016/02/24 职场文书
Python基础之Socket通信原理
2021/04/22 Python
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis