我试图让这种合并排序算法工作,我完全难住为什么它不会。合并功能似乎工作正常,但排序功能似乎不起作用。我在网上搜索了一个解决方案,但我似乎无法找出我做错了什么。我应该提到,我对python和编码通常很陌生,所以任何帮助将不胜感激。在Python代码提供如下:合并排序Python - 排序功能的问题
def sort(sorted_list):
if len(sorted_list) <= 1:
return sorted_list
middle = len(sorted_list) // 2
left = sorted_list[:middle]
right = sorted_list[middle:]
left = sort(left)
right = sort(right)
return sorted_list(merge(left, right))
def merge(a_list, b_list):
combined_list = []
index_a = 0
index_b = 0
length_a = len(a_list)
length_b = len(b_list)
while index_a < length_a or index_b < length_b:
if index_a < length_a and index_b < length_b:
if a_list[index_b] <= b_list[index_b]:
combined_list += [a_list[index_a]]
index_a = index_a + 1
else:
combined_list += [b_list[index_b]]
index_b = index_b + 1
elif index_a < length_a:
combined_list += [a_list[index_a]]
index_a = index_a +1
else:
combined_list += [b_list[index_b]]
index_b = index_b + 1
return combined_list
您可能收到一条错误消息,指出'list'对象不可调用',指向'return sorted_list(merge(left,right))'。看看那条线。是否有意义? – user2357112 2015-03-31 01:37:01