中科院计算机算法与设计_习题3-4_答案资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.字符a~h出现的频率分布恰好是前8个Fibonacci数,它们的Huffman编码 是什么?将结果推广到n个字符的频率分布恰好是前n个个Fibonacci数的情 形。Fibonacci数的定义为 F0 1, F1 1, Fn Fn2 Fn1 if n 1 解:前8个数为a, b, c, d, e, f, g, h 1, 1, 2, 3, 5, 8,13, 21
t jn 的权重最小。 则在总等待时间T中 t j1 的权重最大,
对 ti 1 i n 进行排序ti ti ti , 按照递增顺序依次服务.
1 2 n
即让所需时间少的顾客先得到服务可以减少总等待时间。
证明 设
ti1 ti2 tin ,下证明当按照不减顺序依次服务为最优策略。
第三章 分治算法 习题
1、编写程序实现归并算法和快速排序算法 参见后附程序 动手编程运行一下 2、用长为100、200、300、400、500、600、700、800、900、
1000的10个数组的排列来统计这两种算法的时间复杂性。
大部分的情况是快速排序算法要比归并算法快一些 3、讨论归并排序算法的空间复杂性。
k
iຫໍສະໝຸດ Baidu
i
1)当n 1时, 取C R(1),则保证c C / 4即可满足R(1) C 4c.
n
k k (C A (n)) C A (n), 2)设对任意m<n, R(m) 4cm 都成立,且不妨设 R(n) max k
1 R(n) cn ( R(n 1) R(n k n 1)) ( R(k n ) R(k n 1) R(n 1)) n 4c cn ((n 1) (n k n 1)) (k n (n 1)) n 4c (k 1)(2n k n ) (n k n )(k n n 1) cn ( n ) n 2 2 4c 2 n 2 3n 4c n 1 2 n 2 3n cn (k n (n 1)k n ) cn (( ) ) n 2 n 2 2 3n 2 4n 1 cn c cn c(3n 3) n 4cn
因涉及case的时间复杂度是 O(n),故存在常数c,使得算法PartSelect的平均
k (n) 满足 时间复杂度 CA
1 k k i k CA (n) cn ( C A (n i ) C A (i 1)) n 1i k k i n k (C A (n)),下用第二数学归纳法证明 R(n) 4cn. 令R(n) max k
Huffman哈夫曼编码树为:
a的编码为:1111111 b的编码为:1111110 c的编码为:111110 d的编码为:11110 e的编码为:1110 f的编码为: 110
第四章 贪心算法 习题
1. 设有n个顾客同时等待一项服务,顾客i需要的服务时间为ti ,应该 如何安排n个顾客的服务次序才能使总的等待时间达到最小?总的 等待时间是各顾客等待服务的时间的总和。试给出理由。 解析:设服务顾客的顺序为 j1 , j2 ,..., jn ,则总等待时间为
T (n 1)t j1 (n 2)t j2 2t jn2 t jn1 ,
Huffman哈夫曼编码树为:
0 54 1 0 33 0
a的编码为:1111111 b的编码为:1111110 c的编码为:111110 d的编码为:11110 e的编码为:1110 f的编码为: 110
h:21
g:13
1
20
1
12 0 1 7 0 d:3 0 c:2 0 1 4 1 2 1 a:1
记按照 i1i2 in 次序服务时,等待时间为 T 。 下证明任意互换两者的次序,T 都不减。
~ ( i j ) i , j 假设互换两位顾客 的次序,互换后总时间为 T
由于
T (n 1)ti1 (n 2)ti2 (n i)tii (n j)ti j 2tin2 tin1 ,
~ T (n 1)ti1 (n 2)ti2 (n i )ti j (n j )tii 2tin2 tin1 ,
则有
~ T T ( j i )( ti j tii ) 0.
i1i为最优策略 . 2 in
其它任意次序,都可以由 i1i2 in 经过有限次两两调换后得到, 而每次交换,总时间不减,从而
4、说明算法PartSelect的时间复杂性为 O(n) 提示:假定数组中的元素各不相同,且第一次划分时划分元素 v
是第 i 小元素的概率为 1 / n 。因为Partition后的case语句所要求
的时间都是 O(n) ,所以,存在常数 c,使得算法PartSelect的
k 平均时间复杂度 CA (n) 可以表示为
k CA (n) cn
1 k i k ( CA (n i ) C A (i 1)) n 1ik k i n
k (n)), 取 C R(1), 试证明 R(n) 4cn. 令 R(n) max (C A k
k (n) 表示在数组A的n个元素中寻找第k小元素的平均时间复杂度, 证明:记CA
f:8 e:5
g的编码为: 10
h的编码为: 0
b:1
2.字符a~h出现的频率分布恰好是前8个Fibonacci数,它们的Huffman编码 是什么?将结果推广到n个字符的频率分布恰好是前n个个Fibonacci数的情 形。Fibonacci数的定义为 F0 1, F1 1, Fn Fn2 Fn1 if n 1 解:前8个数为a, b, c, d, e, f, g, h 1, 1, 2, 3, 5, 8,13, 21