python實現快速排序算法


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

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]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM