小编Koj*_*oji的帖子

如何修复合并排序,因为它会将我的数组还原为未排序的数组?

我正在尝试在python中创建递归合并排序功能,但是我的代码无法正常工作。它首先将代码分成1个单元格数组,然后合并并将它们排序在一起。但是,在合并的第二层,函数将还原为尚未排序的数组。我想知道如何使我的代码适合我的排序工作。

def merge(list1, list2):
    count1 = count2 = 0
    final = []
    while count1 < len(list1) and count2 < len(list1):
        if list1[count1] <= list2[count2]:
            final.append(list1[count1])
            count1 += 1
        else:
            final.append(list2[count2])
            count2 += 1
    if count1 == len(list1):
        for i in range(count2, len(list2)):
            final.append(list2[i])
    else:
        for i in range(count1, len(list1)):
            final.append(list1[i])
    return final


def merge_sort(nums):
    if len(nums) > 1:
        list1 = nums[:len(nums) // 2]
        list2 = nums[len(nums) // 2:]
        merge_sort(list1)
        merge_sort(list2)
        print(list1,"List1")
        print(list2,"list2")
        print(merge(list1,list2),"merge")
        return merge(list1, list2)


numbers = [2, 1, …
Run Code Online (Sandbox Code Playgroud)

python mergesort

5
推荐指数
1
解决办法
54
查看次数

标签 统计

mergesort ×1

python ×1