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代码(逐级优化)
May 25 Python
详解Python的Django框架中的templates设置
May 11 Python
python列表的常用操作方法小结
May 21 Python
python 计算两个日期相差多少个月实例代码
May 24 Python
python表格存取的方法
Mar 07 Python
Scrapy框架使用的基本知识
Oct 21 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Python2和3字符编码的区别知识点整理
Aug 08 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
python如何调用php文件中的函数详解
Dec 29 Python
python使用pymysql模块操作MySQL
Jun 16 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安装攻略:常见问题解答(二)
2006/10/09 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
jQuery 页面 Mask实现代码
2010/01/09 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
js实现局部页面打印预览原理及示例代码
2014/07/03 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
使用Python脚本操作MongoDB的教程
2015/04/16 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
上课说话检讨书大全
2014/01/22 职场文书
前端JavaScript大管家 package.json
2021/11/02 Javascript