算法与数据结构——归并排序

归并排序采用分治法
就是将一组混乱的数据分开,将分开的部分排序,将排好序的再组合起来,其实在合并过程中还是有比较的。
垃圾,真显得蛋疼
代码不是完全正确,存在bug,在pycharm里边改好了

def merge_sort(nums):
    if len(nums)<=1:
        return nums
    count = len(nums)//2
    left = nums[:count]
    right = nums[count:]
    return
def merge(left,right):
    l,r = 0,0
    result = []
    while l < len(left) and r < len(right):
        if left[l] < right[r]:
            result.append(left[l])
            l += 1
        else:
            result.append(right[r])
            r += 1
    # 为什么非得加一个list呢,因为有时候left[l:]只有一个数据的时候,是一个数字
    result += list(left[l:])
    result += list(right[r:])
if __name__ == "__main__":
    nums = [1, 23, 13, 34, 15, 76, 27, 38, 9]
    merge_sort(nums)
    print(nums)
全部评论

相关推荐

头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务