資料結構與演算法
(姓名, 分數)的資料 (A, 80)、(B, 70)、(C, 80)、(D, 70) 依此順序排列。以穩定排序依分數升冪重新排列時,姓名的順序為下列何者?
- AB, D, A, C
- BD, B, A, C
- CB, D, C, A
查看答案與解析
正確答案:A. B, D, A, C
在穩定排序中,鍵(這裡是分數)相同的元素之間,會維持排序前的順序。70分的 B 與 D 依原順序為 B、D,80分的 A 與 C 依原順序為 A、C,因此結果為 B, D, A, C。穩定的排序有泡沫排序、插入排序、合併排序,而選擇排序、快速排序、堆積排序一般不穩定。使用穩定排序,就能做到先依姓名排序、再依分數重新排序這類以多個鍵進行的排序。
- A. 正確。分數相同者之間維持原順序(B→D、A→C)。
- B. 70分的 B 與 D 的順序與原本相反。
- C. 80分的 A 與 C 的順序與原本相反。