算法导论第八章练习参考答案

Exersise

*8.4-5 定义随机变量 X X 的概率分布函数 P ( x ) = P r { X x } P(x)=Pr\{X\leq x\} 。假设有 n n 个随机变量 X 1 , X 2 , , X n X_1,X_2,\cdots,X_n 。服从一个连续概率分布函数 P P ,且它可以在 O ( 1 ) O(1) 的时间内被计算得到。设计一个算法,使其能够在平均情况下在线性时间内完成这些数的排序。

P ( y i ) = P r { X y i } = i n P(y_i)=Pr\{X\leq y_i\}=\frac{i}{n} i = 1 , , n i=1,\cdots ,n

P ( y 1 ) = 1 n P(y_1)=\frac{1}{n}

P ( y 2 ) = 2 n P(y_2)=\frac{2}{n}

P ( y 3 ) = 3 n P(y_3)=\frac{3}{n}

\cdots

P ( y n ) = 1 P(y_n)=1

解出 y i y_i 作为桶排序中桶的序号,如果 X ( , y 1 ) X\in(-\infin,y_1) 则把 X X 放入 y 1 y_1 桶内,如果 X ( y 1 , y 2 ) X\in(y_1,y_2) 则把 X X 放入 y 2 y_2 桶内,以此推类,平均情况下每个桶大小大致相同,桶排序可以在 Θ ( n ) \Theta(n) 内完成。最坏情况下,每个 X X 都在 ( y n 1 , y n ) (y_{n-1},y_n) 之间,即最后一个桶中,寻找桶需要花费 O ( n 2 ) O(n^2) ,排序需要花费 O ( n 2 ) O(n^2) ,一共花费 O ( n 2 ) O(n^2)

发布了5 篇原创文章 · 获赞 0 · 访问量 148

猜你喜欢

转载自blog.csdn.net/suchvaliant/article/details/105718415