資訊人筆記

Work hard, Have fun, Make history!

使用者工具

網站工具


programming:algorithm:sorting

Sorting

0x01 內部排序 v.s 外部排序

  • 內部排序(internal sort): 將資料全部載入主記憶體,排序的處理動作全都在主記憶體進行
  • 外部排序(external sort): 當資料量太大無法全部載入主記憶體,因此將資料儲存於輔助記憶體的工作空間中,在分段將資料載入主記憶體進行排序

0x02 比較式排序 v.s 分布式排序

  • 比較式排序(comparison sort): 排序時是比較兩筆資料大小再決定如何移動資料的排序方式
  • 分布式排序(distributive sort): 根據鍵值計算分分析出資料所應存放的位置,直接將資料放入該位置的排序方式

0x03 穩定排序

  • key 相同的 reocde,在排序完成後仍維持原來的先後次序。
  • 即 ki = kj,且 i < j,在排序後 Ri 仍排在 Rj 之前,此種排序為穩定排序 (stable sort)
  • 反之若不能保證 key 相同的 record 排序後的順序則為不穩定排序 (unstable sort)

0x04 反轉表

排序後資料 a1 ~ an,其反轉表為 b1 ~ bn,而 bi 表示在原始資料序列中,在 ai 之前大於 ai 的資料筆數

Example:

原始資料: 5, 3, 8, 2, 6, 1, 9, 7, 4

反轉表 (inversion table):

ai 1 2 3 4 5 6 7 8 9
bi 5 3 1 5 0 1 2 0 0

programming/algorithm/sorting.txt · 上一次變更: 127.0.0.1