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的ORM框架SQLObject入门实例
Apr 28 Python
利用Python抓取行政区划码的方法
Nov 28 Python
Python向日志输出中添加上下文信息
May 24 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
python basemap 画出经纬度并标定的实例
Jul 09 Python
详解Python并发编程之创建多线程的几种方法
Aug 23 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 Python
PYcharm 激活方法(推荐)
Mar 23 Python
构建高效的python requests长连接池详解
May 02 Python
pandas 按日期范围筛选数据的实现
Feb 20 Python
Python opencv缺陷检测的实现及问题解决
Apr 24 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中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
jquery 设置style:display的方法
2015/01/29 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
详解Python中的日志模块logging
2015/06/19 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
python之消除前缀重命名的方法
2018/10/21 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
python 实现图片批量压缩的示例
2020/12/18 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
骨干教师培训制度
2014/01/13 职场文书
打架检讨书2000字
2014/02/22 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
消防安全标语
2014/06/07 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
世界遗产的导游词
2015/02/13 职场文书
领导干部失职检讨书
2015/05/05 职场文书
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript