算法导论第三版习题8.4

来源:互联网 发布:手机淘宝链接转换 编辑:程序博客网 时间:2024/06/05 18:47

8.4-1

(1) 首先n=A.length=10,然后让B[0...9]分别为一个空链表;
(2) 遍历数组A,将数组A中每一个元素A[i]都加到链表B[nA[i]]中,得到B[0]=,B[1]={0.13,0.16},B[2]={0.20},B[3]={0.39},B[4]={0.42},B[5]={0.53},B[6]={0.64},B[7]={0.71,0.79},B[8]={0.89},B[9]=;
(3) 然后对B[0...9]分别进行插入排序,得到B[0]=,B[1]={0.13,0.16},B[2]={0.20},B[3]={0.39},B[4]={0.42},B[5]={0.53},B[6]={0.64},B[7]={0.71,0.79},B[8]={0.89},B[9]=
(4) 然后按i=09的顺序遍历B[i],将其中的数据逐一取出置于另一数组C中,C={0.13,0.16,0.20,0.39,0.42,0.53,0.64,0.71,0.79,0.89},最后返回数组C

8.4-2

因为当所有的元素都在同一个桶中且按降序排列时,在插入排序过程我们将需要的运行时间为Θ(n2)
可以将对桶中数据的排序方法换为归并排序或者其他最坏情况下运行时间为Θ(nlgn)的排序方法。

8.4-3

E[X2]=i=02i2P{Xi}=1224+2214=32

E2[X]=(i=02iP{Xi})2=(112+214)2=1

8.4-4

单位元的面积是π,我们将单位圆从圆心到圆周按面积等分为n个圆环,每个圆环的面积为πn。假设圆环内径和外径分别为a,b,那么就有π(b2a2)=πn。由于最内的圆环内径外径分别为0和1n,所以我们不难知道,所有圆环的内径序列为ai={0,1n,2n,,in,,n1n}
然后我们就可以进行类似的桶排序:将BUCKET-SORT中的第6行换为insert di into list B[n2di]即可。

8.4-5

首先我们将求出P(x)=0,1n,,n1n,1时的x的取值序列,假设为X={x0,x1,,xn1,xn},然后我们按桶排序对这些数进行排序,将BUCKET-SORT算法的第6行改为

0 0