找到给定概率的分位数的时间复杂度

时间:2018-01-24 20:53:54

标签: algorithm time-complexity computer-science complexity-theory quantile

假设Xn元素的随机进程X={x1,...,xn}

对于给定的概率p,相应的分位数通过分位数函数Q确定,定义为:

Q(p)={x|Pr(X<=x)=p}

找到给定概率p的分位数的时间复杂度是什么?

1 个答案:

答案 0 :(得分:1)

Quickselect可以使用中位数枢轴选择的中位数来获得O(n)最坏情况运行时来选择第k顺序统计量。这似乎或多或少是你所追求的,除非我误解(你想要(n * p)&#39;最小的元素。)

在一般情况下,你不可能改进这一点:你必须至少看一下整个数组,否则你没有看到的元素可能就是你需要的答案。

因此,Quickselect在最坏的情况下理论上是最佳的。注意:此透视选择策略具有不良常量,并且在实践中不使用。在实践中,使用随机枢轴选择可以提供良好的预期性能,但O(n ^ 2)最坏情况。