1. 程式人生 > >快速排序 遞迴呼叫

快速排序 遞迴呼叫

快速排序將陣列進行分解,對兩個子問題進行排序。

快速排序首先要找到劃分陣列的基準,我們以陣列的第一個元素為例。

然後將陣列劃分為大於該基準的陣列與小於該基準的陣列。

分別再對兩個子陣列進行快速排序。

python程式碼如下:

def quicksort(list):
    if len(list)<2:
        return list
    else:
        pivot=list[0]
        less=[x for x in list[1:] if x <=pivot]
        greater=[y for y in list[1:] if y>pivot]
        return quicksort(less)+[pivot]+quicksort(greater)

測試結果:
print quicksort([6,2,3,9,7,5,61])
[2, 3, 5, 6, 7, 9, 61]