《算法导论》第三版第9章 中位数和顺序统计量 练习&思考题 个人答案

该博客详细解答了《算法导论》第三版第9章中的练习题,涉及最小值和最大值的查找、期望线性和最坏情况下的选择算法,以及各种思考题,包括有序序列中的i个最大数、带权中位数、小顺序统计量和随机选择的分析方法。
摘要由CSDN通过智能技术生成

9.1 最小值和最大值

9.1-1

解:
两两比较,直至找到最小值(共需 n − 1 n-1 n1次),将曾与最小值比较过的值进行比较(共需 ⌈ l g n ⌉ − 1 \lceil lgn\rceil -1 lgn1次)。
n − 1 + ⌈ l g n ⌉ − 1 = n + ⌈ l g n ⌉ − 2 n-1+\lceil lgn\rceil -1=n+\lceil lgn\rceil -2 n1+lgn1=n+lgn2

9.1-2

解:先两两比较一轮(比较次数 ⌊ n 2 ⌋ \lfloor \frac{n}{2}\rfloor 2n),将较大值分为一组(最多 ⌈ n 2 ⌉ \lceil \frac{n}{2}\rceil 2n个元素),较小值分为一组(最多 ⌈ n 2 ⌉ \lceil \frac{n}{2}\rceil 2n个元素),之后分别在两组间找出最大值(最小值)(比较次数 2 ⌈ n 2 ⌉ − 2 2\lceil \frac{n}{2}\rceil-2 22n2), ⌊ n 2 ⌋ + 2 ⌈ n 2 ⌉ − 2 = ⌈ 3 n 2 ⌉ − 2 \lfloor \frac{n}{2}\rfloor+2\lceil \frac{n}{2}\rceil-2=\lceil \frac{3n}{2}\rceil-2 2n+22n2=23n2

9.2 期望为线性时间的选择算法

9.2-1

易证。。

9.2-2

在一个分区中选取主元不会影响子问题的概率。也就是说,在RANDOMIZED-PARTITION中对RANDOM的调用产生一个结果,与下一次迭代中的调用无关。

9.2-3

RANDOMIZED-SELECT(A, p, r, i)
while p < r
    q = RANDOMIZED-PARTITION(A, p, r)
    k = q - p + 1
    if i == k
        return A[q]
    else if i < k
        r = q - 1
    else p = q + 1   
return A[p]

9.2-4

思路:依次选择9、8、7、6、5、4、3、2、1。

9.3 最坏情况为线性时间的选择算法

9.3-1

解:
(1) T ( n ) ≤ { O ( 1 ) ,   n &lt; 126 T ( ⌈ n 7 ⌉ ) + T ( 5 n 7 + 8 ) + O ( n ) ,   n ≥ 126 T(n)\leq \begin{cases} O(1), &amp; \ n&lt;126 \\ T(\lceil\frac{n}{7}\rceil)+T(\frac{5n}{7}+8) +O(n), &amp; \ n\geq 126\end{cases} T(n){ O(1),T(7n)+T(75n+8)+O(n), n<126 n126
关于数字126的证明:
c n 7 + c + 5 c n 7 + 8 c + a n ≤ c n \frac{cn}{7}+c+\frac{5cn}{7}+8c+an\leq cn 7cn+c+75cn+8c+ancn
c ≥ 7 a n n − 63 c \geq 7a\frac{n}{n-63} c7an63n
取126的思路类似于第124页取数字140的思路。。。
(2) T ( n ) ≤ T ( ⌈ n 3 ⌉ ) + T ( 2 n 3 + 4 ) + O ( n ) T(n)\leq T(\lceil\frac{n}{3}\rceil)+T(\frac{2n}{3}+4) +O(n) T(n)T(3n)+T(32n+4)+O(n)
时间复杂度是 Ω ( n l g n ) \Omega(nlgn) Ω(nlgn)

9.3-2

证明:
3 10 − 6 n ≥ 36 140 &gt; 1 4 \frac{3}{10}-\frac{6}{n}\geq \frac{36}{140} &gt;\frac{1}{4} 103n614036>4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值