公務人員特種考試計算機大意108 年第 4 題單選題
下列有關資料排序的敘述,何者錯誤?
A選擇排序法(Selection sort),是將資料分成已排序及未排序兩部分,依序由未排序中找最小值(or最大值),加入到已排序部分的末端
B合併排序法(Merge sort),是直接將任意 2 個陣列的資料作合併來達成排序目的正確答案
C氣泡排序法(Bubble sort),是利用兩兩比對,若大小順序不對的話就進行交換位置,以這樣的概念來達成排序目的
D插入排序法(Insertion sort),是將資料分成已排序及未排序兩部分,依序由未排序中的第一筆(正處理的值),插入到已排序中的適當位置
B正確答案
Merge sort 必須先把陣列遞迴切分到最小單位,再兩兩合併「已排序」的子陣列,不是任意兩陣列直接合併。
為什麼答案是 B
Merge sort 採分治法(Divide and Conquer),先將陣列遞迴對半切到剩 1 個元素,再把「兩個已排序」的子陣列合併。不是任意兩陣列直接合併,故錯誤,為本題答案。
載入中…
完整詳解
Pro · 無限重點 Merge sort 必須先把陣列遞迴切分到最小單位,再兩兩合併「已排序」的子陣列,不是任意兩陣列直接合併。
Merge sort 關鍵字=分割(Divide)+ 合併已排序子串列。看到「任意 2 個陣列直接合併」就是錯的。
逐選項分析
A✕
選擇排序法的標準定義:每回合從未排序區找出最小(或最大)值,放到已排序區末端,敘述正確。
B✓ 正確
Merge sort 採分治法(Divide and Conquer),先將陣列遞迴對半切到剩 1 個元素,再把「兩個已排序」的子陣列合併。不是任意兩陣列直接合併,故錯誤,為本題答案。
C✕
氣泡排序法的核心就是相鄰兩兩比較,順序錯誤就交換,每回合把最大(小)值「浮」到尾端,敘述正確。
D✕
插入排序法:將未排序區第一筆資料,插入到已排序區的適當位置(類似整理撲克牌),敘述正確。
四大基礎排序法比較
| 排序法 | 核心概念 | 平均時間複雜度 | 是否穩定 |
|---|
| 選擇排序 Selection | 找未排序區最小值放已排序末端 | O(n²) | 不穩定 |
| 氣泡排序 Bubble | 相鄰兩兩比較並交換 | O(n²) | 穩定 |
| 插入排序 Insertion | 未排序首筆插入已排序適當位置 | O(n²) | 穩定 |
| 合併排序 Merge | 分治法:切到最小→合併已排序子陣列 | O(n log n) | 穩定 |
B 選項把 Merge sort 講成「任意兩陣列合併」,偷換掉「分治法先切割、再合併已排序子陣列」的精髓。考生若只記得「合併」兩字容易中招,要記得 Merge sort = Divide + Merge 兩步驟缺一不可。