TimSort排序

TimSort算法是一种起源于归并排序和插入排序的混合排序算法,设计初衷是为了在真实世界中的各种数据中可以有较好的性能。

基本工作过程是:

1.扫描数组,确定其中的单调上升段和严格单调下降段,将严格下降段反转;

2.定义最小基本片段长度,短于此的单调片段通过插入排序集中为长于此的段;

3.反复归并一些相邻片段,过程中避免归并长度相差很大的片段,直至整个排序完成,所用分段选择策略可以保证O(n log n)时间复杂性。

可以看到,原则上TimSort是归并排序,但小片段的合并中用了插入排序。


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