您当前的位置:首页 > 计算机 > 编程开发 > Python

Python版归并排序算法(附Python程序__name__属性用法演示视频)

时间:09-09来源:作者:点击数:

import random

def mergeSort(seq, reverse=False):    

    #把原列表分成两部分

    mid = len(seq) // 2

    left, right = seq[:mid], seq[mid:]

    #根据需要进行递归

    if len(left) > 1:

        left = mergeSort(left)

    if len(right) > 1:

        right = mergeSort(right)

    #现在前后两部分都已排序

    #进行合并

    temp = []

    while left and right:

        if left[-1] >= right[-1]:

            temp.append(left.pop())

        else:

            temp.append(right.pop())

    temp.reverse()    

    result = (left or right) + temp

    

    #根据需要进行逆序

    if reverse:

        result.reverse()

    return result

#测试

for i in range(100000):

    #生成随机测试数据

    reverse = random.choice((True, False))

    x = [random.randint(1,100) for i in range(20)]

    y = sorted(x, reverse=reverse)

    x = mergeSort(x, reverse)

    if x!=y:

        print('error')

附:Python程序的__name__属性作用与用法演示视频

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门