Las Vegas算法运行时分析

时间:2012-04-25 10:36:15

标签: arrays algorithm

在n个元素的数组中,如果n / 2是重复元素而其余元素是不同的,我们可以使用Las Vegas算法在o(logn)时间内获取重复元素。

还有另外一个问题说:做这个算法所需的最小重复次数是多少(logn),即(n / k重复的元素,其中k =?),如果重复的元素是root,那么运行时间是多少( N)?

我的结果表明,如果重复的元素是root(n),那么它不是o(logn),但是我无法使用拉斯维加斯算法找到这个问题的松散界限。帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

“拉斯维加斯”不是算法;这是一种算法。显而易见的算法是随机均匀地对元素对进行采样,直到它们匹配为止。当阵列的元素重复n / 2次时,每对成功的概率为((n / 2)/ n)((n / 2-1)/(n-1))= 1/4-O (1 / n),因此预期运行时间为1 /(1/4 - O(1 / n))= 4 + O(1 / n)= O(1)采样对。

由于这可能是家庭作业,可以弄清楚如何根据不同的重复次数调整分析。