回覆列表
  • 1 # 休閒遊戲人

    快速排序,又稱劃分交換排序(partition-exchange sort)

    1.基本思想

    透過一趟排序將待排記錄分隔成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分的關鍵字小,則可分別對這兩部分記錄繼續進行排序,以達到整個序列有序。

    2.實現邏輯

    快速排序使用分治法(Divide and conquer)策略來把一個序列(list)分為兩個子序列(sub-lists)。

    ① 從數列中挑出一個元素,稱為 “基準”(pivot),

    ② 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。在這個分割槽退出之後,該基準就處於數列的中間位置。這個稱為分割槽(partition)操作。

    遞迴到最底部時,數列的大小是零或一,也就是已經排序好了。這個演算法一定會結束,因為在每次的迭代(iteration)中,它至少會把一個元素擺到它最後的位置去。

    3. 與其他排序方法區別

    相比其他排序,快速排序在排序演算法中具有排序速度快,而且是就地排序等優點,使得在許多程式語言的內部元素排序實現中採用的就是快速排序。

    4. 動態圖演示

  • 中秋節和大豐收的關聯?
  • 喜茶的草莓芝士奶茶怎麼做?