首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STL排序与中位数

STL排序与中位数
EN

Stack Overflow用户
提问于 2010-09-18 11:16:32
回答 2查看 780关注 0票数 0

sort ()使用根据当前分区比率在快速排序和堆排序之间切换的Introsort algorithm

实现中间数快速排序代替内部排序有什么实际的缺点吗?毕竟,理论上很难对混合的排序算法进行建模并计算它们的最坏情况的复杂度--尽管我假设Introsort的复杂度为O(N log N)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-26 08:57:20

参见Musser关于Introsort的原始论文。基本上,虽然Medians和Introsort的中位数是渐近相同的,但Introsort对每个项目做的恒定工作更少,而且通常更快。论文确实提到了中位数作为后备排序而不是堆排序是可以的。

大卫·R·马瑟。内省排序和选择算法。[Postscript version]

票数 2
EN

Stack Overflow用户

发布于 2010-09-18 11:59:58

据我所知,Quicksort在排序或非常接近排序的集合上性能很差- O(n^2)。查看维基百科在Introsort上的页面-关于Introsort和Quicksort的令人信服的统计数据。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3740244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档