Exersise
*8.4-5 定义随机变量
X的概率分布函数
P(x)=Pr{X≤x}。假设有
n个随机变量
X1,X2,⋯,Xn。服从一个连续概率分布函数
P,且它可以在
O(1)的时间内被计算得到。设计一个算法,使其能够在平均情况下在线性时间内完成这些数的排序。
令
P(yi)=Pr{X≤yi}=ni,
i=1,⋯,n
P(y1)=n1
P(y2)=n2
P(y3)=n3
⋯
P(yn)=1
解出
yi作为桶排序中桶的序号,如果
X∈(−∞,y1)则把
X放入
y1桶内,如果
X∈(y1,y2)则把
X放入
y2桶内,以此推类,平均情况下每个桶大小大致相同,桶排序可以在
Θ(n)内完成。最坏情况下,每个
X都在
(yn−1,yn)之间,即最后一个桶中,寻找桶需要花费
O(n2),排序需要花费
O(n2),一共花费
O(n2)。