我刚接触递归算法,目前正在编写一个归并排序算法,该算法比较两个列表的第一个元素,并确定哪个元素更小,然后将较小的元素添加到新列表中。
我试图在每次比较后更新三个列表,并使用更新后的列表再次调用函数本身,但是我在Pycharm中遇到了未解决的引用问题,不确定自己做错了什么。这是我的代码,我期望的输出结果是:
new_list = [4, 8, 15, 16, 23, 42, 50, 75, 108]
我试图在每次比较后更新三个列表,并使用更新后的列表再次调用函数本身,但是我在Pycharm中遇到了未解决的引用问题,不确定自己做错了什么。这是我的代码,我期望的输出结果是:
new_list = [4, 8, 15, 16, 23, 42, 50, 75, 108]
def merge_Sort(list1, list2, new_list):
list1 = [8, 15, 16, 50, 75]
list2 = [4, 23, 42, 108]
new_list = []
for i in range(len(list1)):
if list1[0] < list2[0]:
new_list = new_list.append(list1[0])
list1 = list1.remove(list1[0])
break
elif list1[0] > list2[0]:
new_list = new_list.append(list2[0])
list2 = list2.remove(list2[0])
break
merge_Sort(list1, list2, new_list)
merge_Sort(list1, list2, new_list)