楼主:
wheado (principal component QQ)
2017-09-12 19:08:54教学范例:
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)
print(quicksort([3,6,8,10,1,2,1]))
# Prints "[1, 1, 2, 3, 6, 8, 10]"
以例子来看,里面变量应该是如下:
pivot = 3
left = [1,1,2]
middle = [3]
right = [6,8,10]
但是
想请教为何单纯 return quicksort(left)
出来的结果是 []
为何 return quicksort(left) + quicksort(middle) + quicksort(right)
结果会是 Error
不了解最后 return 里面到底是发生什么事情。
新手发问,谢谢大家。
作者: stucode 2017-09-12 19:52:00
return quicksort(left) + middle + quicksort(right)不等于return left + middle + right