python快速排序實現

思想是:在數組中選定一個數作爲基準,這裏選擇第一個元素,遍歷數組,將>=基準的放到數組右邊(因爲選擇第一個元素作爲基準如還有相等元素,必定在基準元素右側),反之左邊,之後再對基準左右兩邊的數組做相同操作,那麼遞歸停止條件是當數組只剩下一個元素或者爲空時。

def quickSort(arr):
    if len(arr)<=1:
        return arr
    base=arr[0]
    left=[i for i in arr[1:] if i<base]
    right=[i for i in arr[1:] if i>=base]
    return quickSort(left)+[arr[0]]+quickSort(right)

用lambda實現

quick_sort=lambda arr:arr if len(arr)<=1 else quick_sort([i for i in arr[1:] if i<arr[0]])+[arr[0]]+quick_sort([i for i in arr[1:] if i>=arr[0]])
arr=quick_sort(arr)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章