栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用红黑树进行排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用红黑树进行排序

知道哪种排序算法性能更好实际上取决于您的数据和情况。

如果您是在一般/实用方面讲,

Quicksort(一种随机选择枢轴的选择/仅选择一种固定的分类,使最坏的情况为Omega(n ^ 2))可能比Red-Black
Trees好,因为(不一定按重要性顺序排列)

  • Quicksort就位。保持您的内存占用量低。说这个快速排序例程是处理大量数据的程序的一部分。如果您继续使用大量内存,则操作系统可能会开始交换进程内存并浪费性能。

  • Quicksort内存访问已本地化。这与缓存/交换很好地配合。

  • Quicksort可以很容易地并行化(这些天可能更相关)。

  • 如果您尝试通过使用数组来优化和优化二叉树排序(使用二叉树而不进行平衡),则最终会做类似Quicksort的事情!

  • 红黑树有内存开销。您可能必须多次分配节点,因此对树的内存需求是对数组的两倍/三倍。

  • 排序后,说出您想要第1045个(例如)元素,您将需要在树中维护订单统计信息(因此会增加存储成本),并且您将拥有O(logn)访问时间!

  • 红黑树的开销仅用于访问下一个元素(指针查找)

  • 红黑树不能很好地与缓存配合使用,并且指针访问可能会导致更多交换。

  • 红黑树的旋转会增加O(nlogn)中的常数因子。

  • 也许是最重要的原因(但如果有lib等可用,则无效),Quicksort非常易于理解和实现。即使是小学生也能理解!

我会说您尝试衡量这两种实现,然后看看会发生什么!

另外,鲍勃·塞奇威克(Bob Sedgewick)撰写了关于快速排序的论文!可能值得一读。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392389.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号