【问题标题】:Partition Algorithm that leads to a stable Quicksort导致稳定快速排序的分区算法
【发布时间】:2016-06-23 00:42:45
【问题描述】:

据说特定的分区算法可以导致稳定的快速排序,我想知道具体需要什么?

如果有人有创建此类算法的示例或提示,将会很有帮助

【问题讨论】:

  • 我想如果有人想要 Tumbleweed 徽章,这也算。我建议将其作为早期 C 问题的副本关闭;毫无疑问,它可以作为其他问题的重复而关闭。试试吧!
  • 我遇到了Stable Minimum Space Partitioning in Linear Time,这可能是相关的。摘要: 我们表明,通过修改他们的方法,稳定的 0-1 排序在 O(n) 时间和 O(1) 额外空间内是可能的。稳定的三路划分可以简化为稳定的0-1排序。这立即产生了一个稳定的最小空间快速排序,它以高概率在渐近最优时间对多重集进行排序。 也许它有帮助;也许没有。

标签: quicksort stability


【解决方案1】:

分区算法被用作快速排序算法的“核心”。 “明智地”使用分区算法可能会导致“稳定”的快速排序实现。

以下是“分区算法”工作原理的简要总结: https://www.youtube.com/watch?v=MLpH7mpwOxQ

分区算法的目标是简单地获取一些元素集合(例如,您使用“数组”),然后围绕枢轴将该集合分区(或拆分!)成两部分 - 左侧部分和右侧部分。

关于枢轴左侧和枢轴右侧的元素应该有一些“规则”。例如,左侧的所有元素都将小于所选的枢轴,而右侧的所有元素都将大于枢轴。

希望这会有所帮助!

【讨论】:

  • 扩展链接并总结答案中的内容会有所帮助,而不是参考外部资源。无法保证 YouTube 视频会永远存在,甚至会持续一个月。
猜你喜欢
  • 2015-06-02
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多