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设计模式之单例模式实例
Apr 26 Python
python根据时间生成mongodb的ObjectId的方法
Mar 13 Python
python中Flask框架简单入门实例
Mar 21 Python
python 网络编程常用代码段
Aug 28 Python
基于python实现在excel中读取与生成随机数写入excel中
Jan 04 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
Python中Permission denied的解决方案
Apr 02 Python
Pytest中skip skipif跳过用例详解
Jun 30 Python
Python 正则模块详情
Nov 02 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操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
AngularJS 应用模块化的使用
2018/04/04 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
Python中的is和id用法分析
2015/01/26 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Python dict的常用方法示例代码
2020/06/23 Python
python二维图制作的实例代码
2020/12/03 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
个人自荐信
2013/12/05 职场文书
编辑找工作求职信范文
2013/12/16 职场文书
物流管理专业职业生涯规划书
2014/01/06 职场文书
英文留学推荐信范文
2014/01/25 职场文书
群众路线剖析材料
2014/02/02 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
中班教师个人总结
2015/02/05 职场文书
与死神共舞观后感
2015/06/15 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书