- 博客(106)
- 收藏
- 关注
原创 6.5-7
将A[heapSize]和A[i]交换,heapSize减1A[heapSize]和A[i]交换,heapSize减1,则A[i]A[i]的左右子堆都是最大堆,故只需对A[i]A[i]进行MAX-HEAPIFY即可,复杂度为O(lgn)O(\lg n)
2015-07-14 22:07:17
272
原创 6.5-6
用最大优先级队列实现,记当前最大key值为max,先进先出队列为插入新元素的key为max-1,栈为插入新元素的key为max+1 当key的值溢出时,可以为所有元素重新定一遍key
2015-07-14 21:50:09
285
原创 6.3-3
题目写错了,应该是取上整 我们来确定高度为h的结点,设为i,记k为以i为祖先,最左边的叶子 则$i\cdot 2^h=k$,又$\because \frac n2<k\leq n$,故$\frac{n}{2^{h+1}}<i\leq \frac{n}{2^h}$ 即$\lfloor\frac{n}{2^{h+1}}\rfloor+1\leq i\leq \lfloor\frac{n}{2^h}\rfloor$,故$i
2015-07-12 23:36:32
268
原创 6.2-6
当堆顶元素严格最小时,该元素被移动到叶子上,故开销正比于堆的深度 T=Ω(h)=Ω(⌊lgn⌋)=Ω(lgn)T=\Omega(h)=\Omega(\lfloor lgn\rfloor)=\Omega(lgn)
2015-07-10 16:36:10
211
原创 6.2-5
MAX-HEAPIFY(A, i) while i ≤ A.heap-size l = LEFT(i) r = RIGHT(i) if l ≤ A.heap-size and A[l] > A[i] largest = l else largest = i if r ≤ A.heap-size a
2015-07-10 16:28:50
339
原创 6.2-2
MIN-HEAPIFY(A, i) l = LEFT(i) r = RIGHT(i) if l ≤ A.heap-size and A[l] < A[i] smallest = l else smallest = i if r ≤ A.heap-size and A[r] < A[i] smallest = r if smallest ≠
2015-07-09 13:12:18
251
原创 6.1-7
所谓叶子结点就是没有子结点的结点,故2i>n2i>n 故i≥⌊n2⌋+1i \geq \lfloor \frac n2\rfloor + 1
2015-07-08 23:03:04
252
原创 6.1-5
∵left(i)>i,right(i)>i\because left(i)>i,right(i)>i ∴A[left(i)]≥A[i],A[right(i)]≥A[i]\therefore A[left(i)]\geq A[i], A[right(i)]\geq A[i] 故是最小堆
2015-07-08 22:56:26
235
原创 6.1-3
若最大元素x在非根节点i上 ∵A[PARENT(i)]≥A[i]\because A[PARENT(i)]\geq A[i] ∴A[PARENT(i)]=A[i]\therefore A[PARENT(i)]=A[i] 故依次向上,能够推出A[root]=xA[root]=x,与根节点不是最大元素矛盾 故最大元素必然在根节点
2015-07-08 22:48:59
195
原创 6.1-2
当2h≤n≤2h+1−12^h\leq n \leq 2^{h+1}-1时,堆高度为h 对不等式取lg,得h≤⌊lgn⌋≤hh\leq\lfloor lgn\rfloor\leq h 故h=⌊lgn⌋h=\lfloor lgn\rfloor
2015-07-08 22:40:14
223
原创 5-2
a) 我们使用一个set,保存已经搜索过的元素,每一次搜索,如果命中则返回,否则将其添加进入set,当set的大小达到n则结束 b) 几何分布E[X]=1p=nE[X]=\frac1p=n c) 几何分布E[X]=1p=nkE[X]=\frac1p=\frac nk d) 即投球问题中,使得每个空盒有球的期望E=nlnnE=n\ln n e) 在每一位的可能均为1n\frac1n,E=∑ni
2015-07-07 23:35:13
222
原创 5-1
a) 第j步开始前,计数器为i,表示nin_i,若该步没有增加,则仍表示nin_i,若增加了,则表示ni+1n_{i+1},表示的数增加了ni+1−nin_{i+1}-n_i 故E[Xj]=0⋅(1−1ni+1−ni)+(ni+1−ni)⋅1ni+1−ni=1E[X_j]=0\cdot(1-\frac{1}{n_{i+1}-n_i})+(n_{i+1}-n_i)\cdot\frac{1}{n_{i
2015-07-06 00:05:30
211
原创 5.4-6
记第i个盒子没有球的事件为XiX_i E[Xi]=(1−1n)n≈1eE[X_i]=(1-\frac1n)^n\approx \frac1e E[X]=∑ni=1E[Xi]=neE[X]=\sum_{i=1}^nE[X_i]=\frac ne记第i个盒子恰有一个球的事件为YiY_i E[Yi]=n1n(1−1n)n−1≈1eE[Y_i]=n\frac1n(1-\frac1n)^{n-1}\ap
2015-07-05 22:02:33
200
原创 5.4-4
用指示器来做 E[X]=∑ni=1∑nj=i+1∑nk=j+11n2=k(k−1)(k−2)6n2E[X]=\sum_{i=1}^n\sum_{j=i+1}^n\sum_{k=j+1}^n\frac{1}{n^2}=\frac{k(k-1)(k-2)}{6n^2} 求得k=94
2015-07-05 21:51:22
181
原创 5.4-2
记Mi=b!(b−i)!bi记M_i=\frac{b!}{(b-i)!b^i} 设投入i+1个球时结束,则Pi=Mi−Mi+1P_i=M_i-M_{i+1} E=∑bi=1(i+1)Pi=∑bi=1(i+1)(Mi−Mi+1)E=\sum_{i=1}^{b}(i+1)P_i=\sum_{i=1}^{b}(i+1)(M_i-M_{i+1}) =M1+∑bi=1Mi−(b+1)Mb+1\ \
2015-07-05 19:50:43
297
原创 5.4-1
1) 设有k人,每个人与我不同生日的概率364365\frac{364}{365},k人的概率为p=(364365)k≤0.5p=(\frac{364}{365})^k\leq 0.5,求得k=263k=263 2) 设有k人,没有人生日为7月4日的概率为(364365)k(\frac{364}{365})^k,恰有一人生日为7月4日的概率为k(364365)k−1⋅1365k(\frac{364
2015-07-05 18:45:57
378
原创 4-7
a) 必要性显然成立 充分性: ∵∑k−i−1l=0(A[i+l,j]+A[i+l+1,j+1])≤∑k−i−1l=0(A[i+l,j+1]+A[i+l+1,j])\because\sum_{l=0}^{k-i-1}(A[i+l,j]+A[i+l+1,j+1])\leq\sum_{l=0}^{k-i-1}(A[i+l,j+1]+A[i+l+1,j]) ∴A[i,j]+A[k,j+1]≤A[i,
2015-07-05 16:22:31
215
原创 5.3-5
P=∏n−1i=0(1−in3)≥∏n−1i=0(1−nn3)=(1−1n2)n≥1−1nP=\prod_{i=0}^{n-1}(1-\frac{i}{n^3})\geq \prod_{i=0}^{n-1}(1-\frac{n}{n^3})=(1-\frac1{n^2})^n\geq 1-\frac1n
2015-06-03 23:00:08
304
原创 5.3-4
dest=(i+offset) mod ndest = (i + offset)\ mod\ n offset有n种取值,则dest也有n种,概率为1/noffset有n种取值,则dest也有n种,概率为1/n 事实上,这个算法只能生成n种序列
2015-06-03 22:52:33
244
原创 5.2-5
记Xij=I{第i项和第j项构成逆序对}记X_{ij}=I\{第i项和第j项构成逆序对\} 因为对于i,j两项,只有第i项大于第j项或第j项大于第i项两种可能,两种概率相同 ∴E[Xij]=P(Xij)=1/2\therefore E[X_{ij}]=P(X_{ij})=1/2 E[X]=∑n−1i=1∑nj=i+11/2=n(n−1)4E[X]=\sum_{i=1}^{n-1}\sum_{j
2015-06-03 22:28:58
216
原创 5.2-4
记Xi为第i人拿到帽子事件,E(Xi)=1/n记X_i为第i人拿到帽子事件,E(X_i)=1/n E(X)=∑ni=1E(Xi)=1E(X)=\sum_{i=1}^nE(X_i)=1 即期望有1个人拿到正确的帽子
2015-06-03 22:19:27
143
原创 5.2-3
Xi为第i次点数,则E(Xi)=3.5X_i为第i次点数,则E(X_i)=3.5 E(X)=∑ni=1E(Xi)=3.5nE(X)=\sum_{i=1}^n E(X_i)=3.5n
2015-06-03 22:14:29
227
原创 5.2-2
最好的人在i位的概率为1/n,前i−1人中,最好的在第1位的概率为1/(i−1)(i>1)最好的人在i位的概率为1/n,前i-1人中,最好的在第1位的概率为1/(i-1)(i>1) P=∑n21n1i−1=1nln(n−1)P=\sum_2^n\frac1n\frac1{i-1}=\frac1nln(n-1)
2015-06-03 22:12:07
223
原创 5.2-1
雇用1次,则最好的人一定在第一位,p=1/np=1/n 雇佣n次,说明每次面试的人都比上一个好,是一个唯一序列,故p=1/n!p=1/n!
2015-06-03 22:00:41
210
原创 5.1-3
1.利用BIASED−RANDOM先后生成两个数a,b利用BIASED-RANDOM先后生成两个数a,b 2.若a>b输出1,若a<b输出0,否则重复1若a>b输出1,若a<b输出0,否则重复1每一次能输出结果的概率是P=2p(1−p),E=12p(1−p)P=2p(1-p),E=\frac{1}{2p(1-p)} 故T=O(2E)=O(1p(1−p))T=O(2E)=O(\frac{1}{p(
2015-06-03 21:54:28
140
原创 5.1-2
令n=b−a,c=⌈lgn⌉令n=b-a,c=\lceil lgn\rceil 1. 运行c次RANDOM(0,1),将生成的序列视为输出数m的二进制表示 2. 若m大于n,则重复1,否则输出m+am小于n的概率为p=n/2c,则期望E=2c/np=n/2^c,则期望E=2^c/n 故T=O(Ec)=O(c2c/n)=O(lg(b−a))T=O(Ec)=O(c2^c/n)=O(lg(b-a))
2015-06-03 21:47:26
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人