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

我们可以进行n logn最坏情况复杂度的快速排序吗?

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

我们可以进行n logn最坏情况复杂度的快速排序吗?

好吧,是的,我们可以将其降低到O(nlogn)。我见过的所有尝试降低这一点的算法都基于选择枢轴点。如果您可以“智能地”选择枢轴点,则可以将其降低。

选项1.介绍排序。现在,它不再是一种“纯粹的”快速排序。稍后使用合并排序。2.选择中位数作为枢轴。现在,如果以通常的方式完成操作,找到中值可能会花费大量时间,但是算法介绍中有提及。

  1. 将数组分为[n / 5]个组,每个组有5个元素
  2. 使用插入排序找到每个组的中位数,然后从此列表中选择中位数
  3. 然后,您将需要递归尝试查找从每个组计算出的[n / 5]个中位数的中位数。
  4. 围绕该中位数对数组进行分区

我已经隐藏了该算法中一些更复杂的内容。如果需要,您可以在同一本书中阅读。通常,我不会尝试使用此算法。我使用随机选择操作来查找关键点并进行处理。



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

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

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