快速排序算法(python)

理解快速排序的前提是理解遞歸的原理(即調用棧)和遞歸運行的分而治之的思想.

快排的步驟:

(1) 選擇基準值(這裏選擇下標0的元素)。
(2) 將數組分成兩個子數組:小於基準值的元素和大於基準值的元素。
(3) 對這兩個子數組進行快速排序。

import random

list1 = [x for x in range(1, 50)]
random.shuffle(list1)
print("排序前", list1)


def quick_sort(a):
    """
    @type a:list
    """
    if len(a) < 2:
        return a
    reference = a[0]
    minlist = [x for x in a[1:] if x < reference]
    maxlist = [x for x in a[1:] if x > reference]
    return quick_sort(minlist) + [reference] + quick_sort(maxlist)


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