通过随机分区进行集中选择?


11

在数字的数组中查找中值元素的常用简单算法是:An

  • 从采样元素并替换为n3/4AB
  • 排序并找到排名元素和的B|B|±nlrB
  • 检查和在的中位数的相对侧,并且对于某些适当的常数在和与之间最多有元素。如果没有发生,则失败。lrACnAlrC>0
  • 否则,通过在和之间对的元素进行排序来找到中位数Alr

不难看出这是线性运行的,并且成功的可能性很高。(所有不良事件与二项式的期望值相差很大。)

针对相同问题的另一种算法,这里描述的是一种更自然的方法,可以教给看过快速排序的学生:随机选择

还很容易看出,该循环的预期运行时间是线性的:说“回合”是一系列递归调用,当一个人进行1 / 4-3 / 4分割时结束,然后观察到一个回合最多为2。(在第一回合中,成功分割的概率为1/2,然后实际上增加了,因为描述了算法,所以回合长度受几何随机变量支配。)

所以现在的问题是:

是否有可能表明随机选择在线性时间内运行的可能性很高?

我们有回合,并且每个回合的长度至少为,概率最大为,因此并集约束得出运行时间为以概率。k 2 k + 1 O n log log n 1 1 / O log n O(logn)k2k+1O(nloglogn)11/O(logn)

这有点令人不满意,但实际上是真的吗?


请阐明您的问题指的是哪种算法。
拉斐尔

您是在问是否正确应用了工会界限,还是有一个更好,更令人满意的界限?

@乔后者。关键是,倒圆是一种伪像,可以使倒圆的长度受几何图形支配。然后,anaylisys会“忘记”该算法是始终在鼻子上进行1 / 4-3 / 4拆分以使几何图形独立的算法的领先还是落后。我在问尤瓦尔(Yuval)在下面所说的“作弊”是否仍然很严密。
路易(Louis)

Answers:


5

该算法以高概率在线性时间内运行并非是正确的。仅考虑第一轮,运行时间至少为乘以随机变量。令ģ 1 / 2 [ g ^ 1 / 2 日志2 p Ñ - 1 ] = p Ñ Θ(n)G(1/2)p(n)0Pr[G(1/2)log2p(n)1]=p(n)Ω(nlog2p(n)1)=ω(n)

(涉及一些作弊,因为第一轮的长度并不是真正的。更仔细的分析可能会或可能不会验证此答案。)G(1/2)

编辑:Grübel和Rosler证明,比较的预期次数除以会(在某种意义上)趋于某种极限分布,该极限分布是无界的。例如,请参阅Grübel的论文“ Hoare的选择算法:马尔可夫链方法”,该论文引用了他们的原始论文。n


这是困扰我的事情。就像我在上面的评论中说的那样,回合只是分析算法的“慢速”版本的一种方法,该算法要等到获得足够好的枢轴才能继续进行。您所显示的是,对于任何固定,第一轮需要大于轴的概率为。但是,从原则上讲,较长的第一轮可以由一个空的第二轮抵消,从某种意义上说,最后,“非慢速”算法追赶到总是获得1 / 4-3 / 4分割的算法。C > 0C>0C>0
路易(Louis)

1
这是不正确的,如果第一轮很长,那么整个运行时间就会很长,因为以后的轮次不会减少运行时间。关键是,对于任何,第一轮花费的时间至少为且概率为。C n p C > 0CCnpC>0
Yuval Filmus 2012年

我现在过得快乐,因为圆长度不太多比用于上界的几何感较小。我想这就是G&R严格的要求。好答案。
路易(Louis)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.