初考-統計資料處理大意108 年第 12 題單選題
利用中文氣泡排序法(Bubble Sort),一個中文字依序輸入"背後看人"排序成"看人背後",則其逆序數(inversion number):即需幾次交換次數為何?
A正確答案
逆序數=需交換次數,計算每個字在原序列中比它應在位置後卻排在前的對數,答案為4次。
為什麼答案是 A
將目標「看人背後」編號為1,2,3,4,原序列「背後看人」對應為3,4,1,2。逆序對有(3,1)(3,2)(4,1)(4,2)共4對,即需4次交換。
載入中…
完整詳解
Pro · 無限重點 逆序數=需交換次數,計算每個字在原序列中比它應在位置後卻排在前的對數,答案為4次。
逆序數=所有『前大後小』的對數。將目標順序編號後,數原序列中的逆序對即可。
逐選項分析
A✓ 正確
將目標「看人背後」編號為1,2,3,4,原序列「背後看人」對應為3,4,1,2。逆序對有(3,1)(3,2)(4,1)(4,2)共4對,即需4次交換。
B✕ 陷阱
5次為常見誤算,可能把相鄰交換多數一輪。泡沫排序最壞情況為n(n-1)/2=6,但此題僅需4次相鄰交換即可完成。
C✕ 陷阱
6是n=4時的最大逆序數n(n-1)/2=6(完全逆序),但本題並非完全逆序,不需6次。
D✕
7超過4個元素的最大逆序數上限(6),不可能成立。
泡沫排序交換過程(背後看人 → 看人背後)
| 步驟 | 序列 | 交換對 | 累計次數 |
|---|
| 初始 | 背後看人 | - | 0 |
| 1 | 背看後人 | 後↔看 | 1 |
| 2 | 背看人後 | 後↔人 | 2 |
| 3 | 看背人後 | 背↔看 | 3 |
| 4 | 看人背後 | 背↔人 | 4 |
考生易把「最大可能交換次數n(n-1)/2=6」誤當答案,或硬背公式而不實際模擬。正確做法是將目標序列編號後,逐字計算原序列中的逆序對數,即為泡沫排序實際所需交換次數。