資料結構與演算法
以泡沫排序將陣列 5, 3, 8, 1, 4 依升冪排列。從開頭比較相鄰的兩個元素,若左側較大就交換,這樣的操作進行到末尾1次(1輪)後,陣列為下列何者?
- A1, 3, 8, 5, 4
- B3, 5, 1, 4, 8
- C1, 3, 4, 5, 8
查看答案與解析
正確答案:B. 3, 5, 1, 4, 8
交換5與3得到 3, 5, 8, 1, 4;5與8不變;交換8與1得到 3, 5, 1, 8, 4;交換8與4得到 3, 5, 1, 4, 8。1輪就把最大值8送到末尾並確定其位置,下一輪再以相同方式排列其餘4個元素。1, 3, 8, 5, 4 是找出最小值並與開頭交換的選擇排序進行1輪後的陣列,1, 3, 4, 5, 8 則是全部排序完成的結果。
- A. 這是把最小值1與開頭交換的選擇排序進行1輪後的陣列。
- B. 正確。透過相鄰元素的交換,最大值8被移到末尾。
- C. 這是排序完成的最終結果,1輪不會進行到這裡。