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 相关文章推荐
Tensorflow卷积神经网络实例进阶
May 24 Python
基于python进行桶排序与基数排序的总结
May 29 Python
Python Datetime模块和Calendar模块用法实例分析
Apr 15 Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 Python
Golang GBK转UTF-8的例子
Aug 26 Python
python 将dicom图片转换成jpg图片的实例
Jan 13 Python
Python requests获取网页常用方法解析
Feb 20 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
如何在python中执行另一个py文件
Apr 30 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
Python extract及contains方法代码实例
Sep 11 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
PHP学习之整理字符串
2011/04/17 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
使用js判断TextBox控件值改变然后出发事件
2014/03/07 Javascript
jQuery对val和atrr(&quot;value&quot;)赋值的区别介绍
2014/09/26 Javascript
初识Javascript小结
2015/07/16 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
python下载的库包存放路径
2020/07/27 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
女性时尚在线:IVRose
2019/02/23 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
公司年底活动方案
2014/08/17 职场文书
经济纠纷起诉状
2015/05/20 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript