TimSort排序

TimSort算法是一種起源於歸併排序和插入排序的混合排序算法,設計初衷是爲了在真實世界中的各種數據中可以有較好的性能。

基本工作過程是:

1.掃描數組,確定其中的單調上升段和嚴格單調下降段,將嚴格下降段反轉;

2.定義最小基本片段長度,短於此的單調片段通過插入排序集中爲長於此的段;

3.反覆歸併一些相鄰片段,過程中避免歸併長度相差很大的片段,直至整個排序完成,所用分段選擇策略可以保證O(n log n)時間複雜性。

可以看到,原則上TimSort是歸併排序,但小片段的合併中用了插入排序。


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章