民國111年 普通考試 電子工程 計算機概要
第20題
假設以泡沫排序法(Bubble sort),將給定的n 個整數由小排到大,則該演算法執行數字比較的時間複雜度為下列何者?(注意:一次「數字比較」會比較兩個數字,…
題目
假設以泡沫排序法(Bubble sort),將給定的n 個整數由小排到大,則該演算法執行數字比較的時間複雜度為下列何者?(注意:一次「數字比較」會比較兩個數字,譬如:比較5 和3 何者較大。) A. O(1) B. O(n) C. O(nlogn) D. O(n2)
官方答案
- 答案:D. O(n2)
解析
泡沫排序(Bubble sort)對 n 個數由小排到大,第 1 回合比較 n−1 次、第 2 回合 n−2 次……直至第 n−1 回合比較 1 次,總比較次數 = (n−1)+(n−2)+…+1 = n(n−1)/2,故時間複雜度為 O(n²),選 D。即便加入「某回合無交換即提前停止」的改良,最壞與平均情況仍是 O(n²);最佳情況(已排序)比較次數約為 n−1 為 O(n),但題目問一般比較次數仍以 O(n²) 表示。選項 C 的 O(n log n) 屬合併排序、堆積排序等較佳演算法,非泡沫排序。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。