【发布时间】:2016-01-06 12:04:26
【问题描述】:
我没有得到排序列表,而是只有一个值。
def merge1(left,right):
print("left" , left , "right" , right)
def loop(left,right,ss):
print("left" , left , "right" , right)
if not (left ==[] or right ==[]):
if left[0] <= right[0]:
ss.append(left[0])
return loop(left[1:],right, ss)
else:
ss.append(right[0])
return loop(left,right[1:], ss)
print("hello")
else:
return ss
return loop(left,right,[])
def msort(s):
if len(s)>1:
mid = len(s) // 2
return merge1(msort(s[:mid]),msort(s[mid:]))
else:
return s
print(msort([9,8,7,6,5,4,3,2,1]))
【问题讨论】:
-
尝试使用更简单的示例。例如,
merge1([1], [2])应该返回什么,它实际返回什么?merge1([1], [])呢?