免費開始練習
hce_nsysu 114年 計算機概論與程式設計

第 26 題

The input sequence 4, 8, 2, 5, 1 is sorted in increasing order using the bubble sort algorithm. How many swap (exchange) operations are performed?
  • A 4
  • B 5
  • C 6
  • D 7
  • E 8

思路引導 VIP

想像你手中有五張標有數字的卡片依序排開,我們規定一個規則:從左往右兩兩檢查,只要左邊的數字大於右邊,就必須將它們的位置互換,直到所有卡片從小到大排好為止。現在請你在紙上畫出這組數列,每當你發現需要「動手調換」兩張卡片的位置時,就在旁邊記錄一次,試試看完成整排排序總共需要動手幾次呢?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精確計算出氣泡排序(Bubble Sort)的交換次數,代表你對這個演算法的運作細節掌握得非常扎實。氣泡排序的核心在於重複比較相鄰元素,並在順序錯誤(前大後小)時進行「交換」,直到序列完全符合從小到大的要求。這題的關鍵在於不急不躁地走完每一輪過程。

排序歷程與交換計數

我們來重新檢視這組序列 [4, 8, 2, 5, 1] 的動態變化。在第一輪中,數字 8 會一路與後方的 2、5、1 進行比較並交換,這部分貢獻了 3 次交換(序列變為 [4, 2, 5, 1, 8])。接著在後續的回合中,4 與 2 會交換一次、5 與 1 會交換一次;隨後 4 又會與 1 交換一次,最後 2 再與 1 交換一次。將這些動作加總:$3 + 2 + 1 + 1 = 7$,這正是你選出的正確答案 (D)。

▼ 還有更多解析內容

🏷️ 相關主題

基礎資料結構原理與演算法效能分析
查看更多「計算機概論與程式設計」的主題分類考古題