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实现的检测web服务器健康状况的小程序
Sep 17 Python
Python中类的继承代码实例
Oct 28 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
Python提取频域特征知识点浅析
Mar 04 Python
详解Django-channels 实现WebSocket实例
Aug 22 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
Sep 24 Python
python 定义类时,实现内部方法的互相调用
Dec 25 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
keras处理欠拟合和过拟合的实例讲解
May 25 Python
python导入库的具体方法
Jun 18 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
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中header的用法详解
2013/06/07 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
python实现关键词提取的示例讲解
2018/04/28 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
Python 在局部变量域中执行代码
2020/08/07 Python
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
门诊挂号室室长岗位职责
2013/11/27 职场文书
事业单位接收函
2014/01/10 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL
SQL SERVER触发器详解
2022/02/24 SQL Server
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js