python实现归并排序_Python实现的归并排序算法示例

本文介绍了一种使用Python实现的归并排序算法。归并排序是一种分治算法,通过递归地将数组分成两半,然后合并两个有序部分来完成排序。文章提供了完整的Python代码示例,并展示了排序前后的数组对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文实例讲述了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 "---------------------------------------------------------------"

运行结果:

blank.gif

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

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

时间: 2017-11-20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值