下面的内容适用于用Python编写的合并排序。它抛出一个错误“RuntimeError:超过最大递归深度”。如果我错过了结束递归的逻辑,请让我知道。使用递归合并Python中的排序代码
list=[]
list1=[]
list2=[]
def merge(list,list1,list2):
for k in range(1,len(list1)+len(list2)):
i=1
j=1
if list1[i]>list2[j]:
list[k]=list2[j]
j=+1
k=+1
else:
list[k]=list2[i]
i=+1
k=+1
def split(list,list1,list2):
if len(list)<>1:
list1=list[:len(list)/2]
list2=list[len(list)/2:]
return
def sort(list):
split(list,list1,list2)
sort(list1)
sort(list2)
merge(list,list1,list2)
list = [15,8,59,69,45,23]
sort(list)
不要将其命名对象'list'或'sort'。它们是内置的,你在遮蔽它们(这意味着你不能再使用内置的,因为它被覆盖)。我们其他人很难遵循 – mhlester
@ mhlester:'sort'没问题。这是一种方法。它被“分类”,如果你影子它会导致问题。 – user2357112
抱歉当然你是对的。我只是不喜欢这样一个平淡的名字 – mhlester