資料結構與演算法

以泡沫排序將陣列 5, 3, 8, 1, 4 依升冪排列。從開頭比較相鄰的兩個元素,若左側較大就交換,這樣的操作進行到末尾1次(1輪)後,陣列為下列何者?

  1. A1, 3, 8, 5, 4
  2. B3, 5, 1, 4, 8
  3. 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輪不會進行到這裡。
練習這個領域 前往領域頁面

相關計算工具

資料結構與演算法的其他題目

  1. 以選擇排序(從未排序部分找出最小值,並與未排序部分的開頭交換)將陣列 29, 10, 14, 37, 13 依升冪排列。進行此操作2次後,陣列為下列何者?
  2. 以插入排序將有10個元素的陣列依升冪排列。依序取出第2個以後的元素,從左側相鄰的元素開始依序比較,直到找到小於或等於取出值的元素,或到達開頭為止。一開始就是升冪時與一開始是降冪時,比較次數的組合為下列何者?
  3. 即使在最差情況下時間複雜度也是 O(n log n),且幾乎不使用工作用陣列等額外記憶體就能排序的演算法為下列何者?
  4. (姓名, 分數)的資料 (A, 80)、(B, 70)、(C, 80)、(D, 70) 依此順序排列。以穩定排序依分數升冪重新排列時,姓名的順序為下列何者?
  5. 快速排序的時間複雜度變成 O(n²) 的典型情況為下列何者?