【发布时间】:2019-01-03 23:15:37
【问题描述】:
我正在尝试创建一个递归函数来将列表从低到高排序。 以下代码不起作用
less = []
greater = []
def quicksort(array):
if len(array)<2:
return array
else:
pivot = array[0]
for i in array[1:]:
if i <= pivot:
less.append(i)
else:
greater.append(i)
return quicksort(less)+[pivot]+quicksort(greater)
print(quicksort([1,3,2,7,8]))
但我使用书籍代码,它可以工作。你能告诉我为什么吗?
def quicksort(array):
if len(array)<2:
return array
else:
pivot = array[0]
less = [i for i in array[1:] if i <= pivot]
greater = [i for i in array[1:] if i > pivot]
return quicksort(less)+[pivot]+quicksort(greater)
print(quicksort([1,3,2,7,8]))
【问题讨论】:
标签: python-3.x list recursion