【发布时间】:2021-07-27 03:29:45
【问题描述】:
用 Cormen 自己的话来说 - “不同之处在于,使用确定性算法,特定输入可以引发最坏情况的行为。然而,使用随机算法,没有任何输入可以总是引发最坏情况的行为。”
添加随机枢轴如何改变任何事情,算法在某些特定输入下仍然会表现不佳,并且考虑到每种输入的可能性相同,这并不比标准快速排序更好,唯一的区别是我们实际上并没有知道哪个特定输入会导致最坏情况的时间复杂度。那么为什么随机版本被认为更好呢?
【问题讨论】:
-
少想“意外坏”,多想“我被攻击”坏
-
@MooingDuck 那么这是唯一的优势吗?不过,在现实世界中这真的很重要吗,让快速排序(或任何排序算法)在最复杂的情况下运行是否会在潜在的黑客攻击中使用?
-
事实上,这很重要,它有自己的名字:en.wikipedia.org/wiki/…
标签: algorithm sorting quicksort randomized-algorithm