首页 > 编程语言 > 详细

python实现归并排序

时间:2019-05-11 12:34:14      阅读:104      评论:0      收藏:0      [点我收藏+]

 # 将递归分解列表,直至最小(即每个列表仅有一个元素)

 # 将列表分解最小之后,递归合并两个列表,即挨个比较两个列表中最前面的元素,谁较小就将谁加入新的列表,而后该列表的下标后移一位,继续比较,直至其中一个列表为空,而后将另一个列表中剩余的元素加入新列表

 # 不断合并,直至完全排序完成

 # 时间复杂度: O(nlogn)

def merge_sort(array):
    n = len(array)
    if n < 2:
        return array
    else:
        mid = n // 2
        left = merge_sort(array[0:mid])
        right = merge_sort(array[mid:])
        left_pointer, right_pointer = 0, 0
        result = []
        while left_pointer < len(left) and right_pointer < len(right):
            print(left_pointer, right_pointer)
            if left[left_pointer] < right[right_pointer]:
                result.append(left[left_pointer])
                left_pointer += 1
            else:
                result.append(right[right_pointer])
                right_pointer += 1
        result += left[left_pointer:]
        result += right[right_pointer:]
        return result

 

python实现归并排序

原文:https://www.cnblogs.com/jiaxiaoxin/p/10848119.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!