Python实现的归并排序算法示例


Posted in Python onNovember 21, 2017

本文实例讲述了Python实现的归并排序算法。分享给大家供大家参考,具体如下:

归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。

Python实现代码如下:

#-*- coding: UTF-8 -*-
import numpy as np
def Merge(a, f, m, l):
  i = f
  j = m + 1
  tmp = []
  while i <= m and j <= l:
    if a[i] <= a[j]:
      tmp.append(a[i])
      i += 1
    else:
      tmp.append(a[j])
      j += 1
  while i <= m:
    tmp.append(a[i])
    i += 1
  while j<= l:
    tmp.append(a[j])
    j+= 1
  i = f
  for x in xrange(0, len(tmp)):
    a[i] = tmp[x]
    i += 1
def MergeSort(a, f, l):
  if f< l:
    m = (l + f) / 2
    MergeSort(a, f, m)
    MergeSort(a, m+1, l)
    Merge(a, f, m, l)
if __name__ == '__main__':
  a = np.random.randint(0, 10, size = 10)
  print "Before sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"
  MergeSort(a, 0, a.size-1)
  print "After sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"

运行结果:

Python实现的归并排序算法示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python连接mysql数据库示例(做增删改操作)
Dec 31 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
django之自定义软删除Model的方法
Aug 14 Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 Python
Python实现打印螺旋矩阵功能的方法
Nov 21 #Python
Python中矩阵库Numpy基本操作详解
Nov 21 #Python
python GUI实例学习
Nov 21 #Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 #Python
django中的setting最佳配置小结
Nov 21 #Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
Nov 21 #Python
详解supervisor使用教程
Nov 21 #Python
You might like
隐性调用php程序的方法
2009/03/09 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
php多线程并发实现方法
2016/09/30 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
python复制文件的方法实例详解
2015/05/22 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
市场营销毕业生自荐信
2013/11/23 职场文书
小学教师节活动方案
2014/01/31 职场文书
高中毕业自我评价
2014/02/08 职场文书
市场营销计划书范文
2015/01/16 职场文书
水电施工员岗位职责
2015/04/11 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python