kokozeng/DataStructure

关于函数return

Closed this issue · 1 comments

# 快速排序
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吗?

就是因为没有return的值,直接对对象进行操作。