随机选择中的子阵列大小

时间:2017-08-16 12:58:07

标签: algorithm random quicksort

我正在使用以下多项选择题进行在线课程:

enter image description here

其中RANDOMIZED SELECT算法(基于快速排序)描述如下:

enter image description here

由于所有多项选择都是 a 的线性函数(我的意思是希腊字母alpha),我试图通过考虑极限情况来消除确定正确的答案 a = 0.5且 a = 1。

现在,如果 a = 1,我们正在寻找"在第一次迭代之后,您要查找的元素的子阵列大小为< = 1次的概率原始数组的大小"。在我看来,这总是正确的,因为一次迭代总是减少问题的大小,所以概率应该是1.

如果我对此有所了解,这只留下一个可能的正确答案,2 a - 1.但是,如果我填写 a = 0.5这个表达式我得零,这对我来说没有意义:这意味着一次迭代后问题大小不可能小于原问题大小的一半。

简而言之,这些答案对我来说都不正确;有人能指出我的推理中的缺陷吗?

1 个答案:

答案 0 :(得分:0)

我必须更仔细地阅读这个问题:我们不只是寻找数组的任何元素,而是中位数元素。因此,如果第一次迭代导致不平衡分裂,则中值元素将始终处于较大的子阵列中,因此P(0.5)= 0,确认P( a )= 2 a < / em> - 1个答案。