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