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的Django框架代码的一些示例
Apr 20 Python
Python中常见的数据类型小结
Aug 29 Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 Python
Python面向对象特殊成员
Apr 24 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
Python制作动态字符图的实例
Jan 27 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
python使用wxpy实现微信消息防撤回脚本
Apr 29 Python
python字典的setdefault的巧妙用法
Aug 07 Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 Python
Python进度条的使用
May 17 Python
只用50行Python代码爬取网络美女高清图片
Jun 02 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中如何调用webservice的实例参考
2013/04/25 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
pytorch中index_select()的用法详解
2021/01/06 Python
CSS3 选择器 基本选择器介绍
2012/01/21 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
普天C++笔试题
2016/03/20 面试题
高三自我鉴定怎么写
2013/10/19 职场文书
机关财务管理制度
2014/01/17 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
合同意向书范本
2014/07/30 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
五好家庭申报材料
2014/12/20 职场文书
大学生操行评语大全
2014/12/31 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android