望京 网站建设,怎么优化网站的单个关键词排名,郑州睿网站建设,自己做网站花钱么关于TimSort排序算法#xff0c;请看这篇#xff1a;另一位博主的博客
本文主要讨论让TimSort更快的方法。
已经产生了许多run#xff0c;它们的长度是#xff1a;4 6 2 5 7
用类似于霍夫曼编码的方法#xff0c;找出最小的两项#xff0c;相加。这里是4 2#xff0c…关于TimSort排序算法请看这篇另一位博主的博客
本文主要讨论让TimSort更快的方法。
已经产生了许多run它们的长度是4 6 2 5 7
用类似于霍夫曼编码的方法找出最小的两项相加。这里是4 2他们俩相加得6现在的数据是6 6 5 7
继续选最小的两个相加是6 5得到6 11 7
继续13 11
最后24 解释一下将长度为4和6的两个run进行归并排序需要的时间约是46。采用霍夫曼编码的方式可以让总的时间最小这与霍夫曼编码的最优特性有关。
上图中总时间为611132454
如果不按照这个顺序合并总时间会变大 执行归并排序时的操作次数从54变成了62这不是最优的。
总结
本文描述了一种让TimSort更快的方法该方法从霍夫曼编码获得灵感每次挑最小的两个run合并可使总的操作数最小化。