归并排序的python实现

import math

def sort(arr):
    num_count = len(arr)
    n = 0
    while True:
        temp_arr = []
        group_size = 2 ** n

        for i in range(math.ceil(num_count/group_size/2)):
            left = arr[group_size*(2*i):group_size*(2*i+1)]
            right = arr[group_size*(2*i+1):group_size*(2*i+2)]
            while left and right:
                if left[0] > right[0]:
                    temp_arr.append(left.pop(0))
                else:
                    temp_arr.append(right.pop(0))
            temp_arr.extend(left)
            temp_arr.extend(right)
        arr = temp_arr
        if group_size >= num_count:
            break
        n += 1
    return arr

la = [5, 2, 7, 8, 6, 1, 4, 9, 10, 1, 2, 3, 4]
print(sort(la))

当前标题:归并排序的python实现
分享URL:https://www.cdcxhl.com/article4/jodpie.html

成都网站建设公司_创新互联,为您提供动态网站虚拟主机网站设计公司外贸网站建设云服务器商城网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站建设网站维护公司