22 關於快速排序法(quick sort)的敘述,下列何者錯誤?
(A)在最差情況下(worst case)的時間複雜度為 O(n2)
(B)在最佳情況下(best case)的時間複雜度為 O(n log n)
(C)基準值(pivot)的選擇與時間複雜度無關
(D)使用分而治之法則(divide and conquer)
答案:登入後查看
統計: A(38), B(43), C(244), D(53), E(0) #2574661
統計: A(38), B(43), C(244), D(53), E(0) #2574661
詳解 (共 2 筆)
#4620391
[轉自https://alrightchiu.github.io/SecondRound/comparison-sort-quick-sortkuai-su-pai-xu-fa.html]
Quick Sort是一種「把大問題分成小問題處理」的Divide and Conquer方法,概念如下:
- 在數列中任意挑選一個數,稱為pivot,然後調整數列,使得「所有在pivot左邊的數,都比pivot還小」,而「在pivot右邊的數都比pivot大」。
- 接著,將所有在pivot左邊的數視為「新的數列」,所有在pivot右邊的數視為「另一個新的數列」,「分別」重複上述步驟(選pivot、調整數列),直到分不出「新的數列」為止。
常見的Comparison Sort及其時間複雜度如表一,假設問題有NN筆資料:
| Quick Sort | Merge Sort | Heap Sort | Insertion Sort | Selection Sort | |
|---|---|---|---|---|---|
| best case | NlogNNlogN | NlogNNlogN | NlogNNlogN | NN | N2N2 |
| average case | NlogNNlogN | NlogNNlogN | NlogNNlogN | N2N2 | N2N2 |
| worst case | N2N2 | NlogNNlogN | NlogNNlogN | N2N2 | N2 |
0
1