23 有關排序的效能分析,下列敘述何者正確?
(A)水桶排序法(bucket sort)平均計算時間為 O(n)
(B)比較排序的任何演算法,平均計算時間最好為 O(n)
(C)快速排序(quick sort)最壞情況下的計算時間為 O(n log2n)
(D)堆積排序(heap sort)最壞情況下的計算時間為 O(n2 )

答案:登入後查看
統計: A(31), B(14), C(24), D(12), E(0) #838164

詳解 (共 3 筆)

#2720041
堆積樹(Heap Tree):又叫堆、累...
(共 256 字,隱藏中)
前往觀看
2
1
#5973919
Bucket sort,是建立一些桶子,...
(共 472 字,隱藏中)
前往觀看
1
0
#6500691

(A) 水桶排序法(bucket sort)平均計算時間為 O(n) 正確。 水桶排序是一種非比較排序演算法。當輸入資料均勻分佈在一個範圍內,並且水桶的數量設置得當時,水桶排序的平均時間複雜度確實可以達到 O(n)。這是因為它將元素分配到有限數量的「桶」中,然後對每個桶內的元素進行獨立排序(通常使用其他簡單排序方法,例如插入排序),最後再將所有桶的元素合併。

(B) 比較排序的任何演算法,平均計算時間最好為 O(n) 錯誤。 任何基於比較的排序演算法(例如快速排序、合併排序、堆積排序等),其平均計算時間的理論下限是 O(nlogn)。這是因為要對 n 個元素進行排序,至少需要 O(nlogn) 次比較。O(n) 的時間複雜度只可能在非比較排序演算法中實現(如計數排序、桶排序、基數排序),因為它們不依賴元素間的比較。

(C) 快速排序(quick sort)最壞情況下的計算時間為 O(n log2n) 錯誤。 快速排序在平均情況下的計算時間是 O(nlogn),但在最壞情況下(例如,當輸入陣列已經排序或反向排序,並且選擇的樞紐元素總是最極端的值時),其時間複雜度會退化為 O(n2)

(D) 堆積排序(heap sort)最壞情況下的計算時間為 O(n2 ) 錯誤。 堆積排序的優點之一是其最好、平均、最壞情況下的時間複雜度都是 O(nlogn)。它利用二元堆積的特性來進行排序,無論輸入資料如何,都能保持穩定的效能。

0
0