1. 程式人生 > >python實現快速排序算法

python實現快速排序算法

隨機 div 定性 基數 算法 時間 最快 數組 print

快速排序算法的思想/特點

1.選取一個數字作為基準,(基數可以隨機取,也可選取首位數字) 2.將數列第一位開始,依次與此數字比較,如果小於此數,將小數交換到左邊,最後達到小於基準數的在左邊,大於基準數的在右邊,分為兩個數組 3.分別對兩個數組重復上述步驟 快速排序算法的時間復雜度:平均時間:O(nlog2n) (n倍的以2為底n的對數), 最壞情況:O(n2) ; 對於大的、亂序串列一般認為是最快的已知排序 穩定性:不穩定

python實現快速排序算法的代碼

def partition(arr, low, hight):
    i = low - 1
    for
j in range(low, hight): if arr[j] <= arr[hight]: i = i + 1 arr[i], arr[j] = arr[j], arr[i] arr[i + 1], arr[hight] = arr[hight], arr[i + 1] return i def quick_sort(l, low, hight): if low < hight: key_Index = partition(l, low, hight) quick_sort(l, low, key_Index) quick_sort(l, key_Index
+ 1, hight) else: return l = [5,8,1,3,15,12,0] quick_sort(l, 0, len(l) - 1) print("after sort:", l) # 運行後的結果為:after sort: [0, 1, 3, 5, 8, 12, 15]

python實現快速排序算法