資料結構與演算法
以選擇排序(從未排序部分找出最小值,並與未排序部分的開頭交換)將陣列 29, 10, 14, 37, 13 依升冪排列。進行此操作2次後,陣列為下列何者?
- A10, 13, 14, 37, 29
- B10, 14, 29, 37, 13
- 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輪後的陣列。