3. 下列何者不是快速排序(Quick sort)演算法的特性?
(A) Greedy approach
(B) Recursive approach
(C) Divide and Conquer
(D) Worst-case time complexity 為 O(n2 )

答案:登入後查看
統計: A(38), B(9), C(5), D(19), E(0) #3246958

詳解 (共 2 筆)

#6121067
快速排序是一種基於以下特性的排序演算法...
(共 281 字,隱藏中)
前往觀看
7
0
#6427060

快速排序(Quick Sort)是一種廣泛使用的排序演算法,具有以下特性:

  • 分治法 (Divide and Conquer):快速排序的核心思想是將一個大問題分解為兩個或更多個較小的子問題,然後遞迴地解決這些子問題,最後將子問題的解合併得到原問題的解。在快速排序中,這個過程表現為選擇一個基準點(pivot),將陣列分割成兩部分,然後遞迴地排序這兩部分。
  • 遞迴式 (Recursive approach):快速排序的實現通常是透過函式自身呼叫自身來處理分割後的子陣列,直到子陣列只有一個元素或為空,因此它是一個典型的遞迴演算法。
  • 最差時間複雜度為 O(n²):雖然快速排序的平均時間複雜度為 O(n log n),但在最差情況下(例如,當每次選擇的基準點都導致極度不平衡的分割,如總是選到最小值或最大值),其時間複雜度會退化到 O(n²)。

然而:

  • 貪婪演算法 (Greedy approach):貪婪演算法的特點是在每一步都做出局部最優的選擇,希望這些局部最優選擇能導致全局最優解。快速排序的分割策略並不是在每一步都選擇局部最優的元素以直接達到排序的最終狀態,而是透過基準點將問題規模縮小,這與貪婪演算法的定義不符。

因此,快速排序不屬於貪婪演算法。

答案是 (A) Greedy approach

1
0