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实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
探索Python3.4中新引入的asyncio模块
Apr 08 Python
详解Python中的文本处理
Apr 11 Python
python计算牛顿迭代多项式实例分析
May 07 Python
Python实现telnet服务器的方法
Jul 10 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
使用django-crontab实现定时任务的示例
Feb 26 Python
Python自定义线程类简单示例
Mar 23 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 Python
Python 转移文件至云对象存储的方法
Feb 07 Python
python本地文件服务器实例教程
May 02 Python
Python实现Hash算法
Mar 18 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递归列出所有文件和目录的代码
2008/09/10 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
php去除数组中重复数据
2014/11/18 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
TensorFlow Session会话控制&amp;Variable变量详解
2018/07/30 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
Python实现自动签到脚本功能
2020/08/20 Python
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
会计职业生涯规划范文
2014/01/04 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
工商局调档介绍信
2015/10/22 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
golang使用map实现去除重复数组
2022/04/14 Golang