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

 更新时间:2017年11月21日 15:00:59   作者:Alex Yu  
这篇文章主要介绍了Python实现的归并排序算法,简单描述了归并排序算法的原理,并结合实例形式分析了Python实现归并排序的具体操作技巧,需要的朋友可以参考下

本文实例讲述了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编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

  • python获得文件创建时间和修改时间的方法

    python获得文件创建时间和修改时间的方法

    这篇文章主要介绍了python获得文件创建时间和修改时间的方法,涉及Python针对文件属性的相关操作技巧,需要的朋友可以参考下
    2015-06-06
  • 探索Python元类的魅力:灵活定制类的创建过程

    探索Python元类的魅力:灵活定制类的创建过程

    在Python编程中,元类(Metaclass)是一项高级特性,它允许我们在定义类的时候动态地控制类的创建过程。元类提供了一种强大的机制,可以对类进行定制化,扩展其功能,并在类的实例化过程中执行额外的操作,本文将深入解析
    2023-10-10
  • 简单了解django缓存方式及配置

    简单了解django缓存方式及配置

    这篇文章主要介绍了简单了解django缓存概述及配置,由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,需要的朋友可以参考下
    2019-07-07
  • Python修改DBF文件指定列

    Python修改DBF文件指定列

    这篇文章主要介绍了Python修改DBF文件指定列的实现,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • Python求两个文本文件以行为单位的交集、并集与差集的方法

    Python求两个文本文件以行为单位的交集、并集与差集的方法

    这篇文章主要介绍了Python求两个文本文件以行为单位的交集、并集与差集的方法,涉及Python文本文件与集合运算的相关技巧,需要的朋友可以参考下
    2015-06-06
  • python实现kmp算法的实例代码

    python实现kmp算法的实例代码

    这篇文章主要介绍了python实现kmp算法的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Python列表排序方法reverse、sort、sorted详解

    Python列表排序方法reverse、sort、sorted详解

    这篇文章主要介绍了Python列表排序方法reverse、sort、sorted详解,需要的朋友可以参考下
    2021-04-04
  • python实现最大子序和(分治+动态规划)

    python实现最大子序和(分治+动态规划)

    这篇文章主要介绍了python实现最大子序和(分治+动态规划),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Pytorch中关于F.normalize计算理解

    Pytorch中关于F.normalize计算理解

    这篇文章主要介绍了Pytorch中关于F.normalize计算理解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python 模拟登陆的两种实现方法

    Python 模拟登陆的两种实现方法

    这篇文章主要介绍了Python 模拟登陆的两种实现方法的相关资料,这里提供两种方法一个是普通写法写的,另外一个是基于面向对象写的,模拟登录成功后才可能抓取内容,需要的朋友可以参考下
    2017-08-08

最新评论