关于函数return
Closed this issue · 1 comments
kokozeng commented
# 快速排序
def quick_sort(alist, first, last):
if first >= last:
return
min_value = alist[first]
low = first
high = last
while high > low:
while low < high and alist[high] >= min_value:
high -= 1
alist[low] = alist[high]
while low < high and alist[low] < min_value:
low +=1
alist[high] = alist[low]
alist[low] = min_value
quick_sort(alist, first, low-1)
quick_sort(alist, low+1, last)
if __name__ == "__main__":
alist=[12,34,56,45,23,523,64,123,5346,4,30]
quick_sort(alist, 0, len(alist)-1)
print(alist)
[4, 12, 23, 30, 34, 45, 56, 64, 123, 523, 5346]
但是倒数第二行如果是
alist = quick_sort(alist, 0, len(alist)-1)
输出就变成None
是因为函数是对alist直接操作,没有return吗?
kokozeng commented
就是因为没有return的值,直接对对象进行操作。