算法设计技巧与分析习题参考答案

2026/4/23 9:10:05

(n?k)!?ki(n?k)!(n?i)!?k?(k?1)!(n?k?i?1)!???in!/(n?i)!n!(n?k?i?1)!?(k?1)!iC(n?k)!(n?i)!k!??i?n!(n?k?i?1)!(k?1)!Ck?1n?ikn

于是,

n?k?1?i?1iCCk?1n?iknn?1?k?1

可以证明上式的成立。事实上,上式等价于

n?k?1i?1?iCk?1n?in?1k(n?1)n!k?1kk?1?Cn??Cn?C?C?1nn k?1(k?1)k!(n?k)!n?k?1即要证明

?i?1k?1kk?1iCn?C?C?inn成立。思路:右边变换→左边形式

C?C?C?Cknk?1n?1k?1n?1k?1n?1?C?C?C?C?Ckn?1k?1n?2k?1n?2?C?C?C?Ckn?2k?1n?3?Ckn?3?...

Ck?1n?C?Ckn?1k?1n?1k?1n?1kn?2k?1n?2k?1n?2kn?3k?1n?3k?1n?3?...?C?...?Ckk?1kk?1k?1k,另一方面

?Ck?1k?1?C?C?C?...?C?C,(*) 其中

kkCCCkn?1kn?2???Ck?1n?2?Ck?1n?3?...?Ck?1k?Ck?1k?1

Ck?1n?3?...?CCk?1k?C?Ck?1k?1kk?1k?1kk?1k?1

C?kkCk?1k?1将以上各式(除了*式)相加,即可得到

kk?1k?1k?1k?1k?1Cn?Cn=Cn?2C?3C?...?(n?k?1)C?1n?2n?3k?1?n?k?1i?1n?k?1?i?1k?1iCn?i

iC?即有

k?1n?i?C?Cknk?1n成立。

总结:随机查找

E(ASL)?n,线性查找E(ASL)?n?1kk?1,

n?1nk?nk?1?k?k(k?1)?0,故线性查找更快。

因为14.16 修改14.7节的随机抽样算法,使得它不再需要布尔数组S[1…n],假设n比m大得多,比如n>m.

解:算法设计如下: 1. k←1

2. while k≤m

3. r←random(1,n) 4. i←k-1

5. while i≥1 and r≠A[i] 6. i←i-1 7. end while 8. if i=0 9. A[k]←r 10. k←k+1 11. end if 12. end while

2


算法设计技巧与分析习题参考答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 算法设计技巧与分析习题参考答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219