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的Django框架编写从Google Adsense中获得报表的应用
Apr 17 Python
几种实用的pythonic语法实例代码
Feb 24 Python
详解pandas安装若干异常及解决方案总结
Jan 10 Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
django中的图片验证码功能
Sep 18 Python
python  logging日志打印过程解析
Oct 22 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
Jan 10 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 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的String类代码
2010/04/20 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
python中while和for的区别总结
2019/06/28 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
解决Django no such table: django_session的问题
2020/04/07 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
全球度假村:Club Med
2017/11/27 全球购物
学校安全工作汇报材料
2014/08/16 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
三严三实心得体会范文
2014/10/13 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
承诺书范本大全
2015/05/04 职场文书
会议主持人开场白台词
2015/05/28 职场文书
暂住证证明
2015/06/19 职场文书
运动会报道稿大全
2015/07/23 职场文书
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL