資料結構與演算法

以選擇排序(從未排序部分找出最小值,並與未排序部分的開頭交換)將陣列 29, 10, 14, 37, 13 依升冪排列。進行此操作2次後,陣列為下列何者?

  1. A10, 13, 14, 37, 29
  2. B10, 14, 29, 37, 13
  3. C10, 14, 13, 29, 37
查看答案與解析

正確答案:A. 10, 13, 14, 37, 29

第1次把整體最小值10與開頭的29交換,得到 10, 29, 14, 37, 13。第2次把第2個以後的最小值13與第2個的29交換,得到 10, 13, 14, 37, 29。選擇排序的比較次數固定為 n(n−1)/2 次,但每次操作最多只交換1次,因此對寫入成本高的資料有時較有利。10, 14, 29, 37, 13 是插入排序插入2個元素後的陣列,10, 14, 13, 29, 37 則是泡沫排序進行2輪後的陣列。

  • A. 正確。10與13依序被交換到前面。
  • B. 這是插入排序插入10與14後的陣列。
  • C. 這是泡沫排序進行2輪後的陣列。
練習這個領域 前往領域頁面

相關計算工具

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

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