我正在尝试在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)