什麼是穩定排序

鍵相同的元素之間,在排序後仍保持原本順序的排序。泡沫排序、插入排序、合併排序是穩定的,選擇排序、快速排序、堆積排序一般不穩定。依多個鍵依序排序時需要這個性質。

日文名稱: 安定ソート

「穩定排序」出現在1領域的3道練習題中(資料結構與演算法等)。

這個名詞所屬的領域: 資料結構與演算法

練習穩定排序的題目

(姓名, 分數)的資料 (A, 80)、(B, 70)、(C, 80)、(D, 70) 依此順序排列。以穩定排序依分數升冪重新排列時,姓名的順序為下列何者?

  1. AB, D, A, C
  2. BD, B, A, C
  3. CB, D, C, A
查看答案與解析

正確答案:A. B, D, A, C

在穩定排序中,鍵(這裡是分數)相同的元素之間,會維持排序前的順序。70分的 B 與 D 依原順序為 B、D,80分的 A 與 C 依原順序為 A、C,因此結果為 B, D, A, C。穩定的排序有泡沫排序、插入排序、合併排序,而選擇排序、快速排序、堆積排序一般不穩定。使用穩定排序,就能做到先依姓名排序、再依分數重新排序這類以多個鍵進行的排序。

解析中的「穩定排序」

出現「穩定排序」的題目(3題)

  1. (姓名, 分數)的資料 (A, 80)、(B, 70)、(C, 80)、(D, 70) 依此順序排列。以穩定排序依分數升冪重新排列時,姓名的順序為下列何者?
  2. 即使在最差情況下時間複雜度也是 O(n log n),且幾乎不使用工作用陣列等額外記憶體就能排序的演算法為下列何者?
  3. 在 GPU 這類平行處理裝置上排序時,有時會使用雙調排序(bitonic sort)這類比較與交換步驟固定的排序(排序網路),其理由為下列何者?

半導體、電子電路與資訊計算工具

相關名詞

時間複雜度(大O符號) 陣列 二元堆積 GPU 二元搜尋樹 二分搜尋 佇列 動態規劃 堆疊 深度優先搜尋

前往名詞解釋列表