算法导论第三版第七章思考题
来源:互联网 发布:网络热血传奇沙巴克 编辑:程序博客网 时间:2024/06/04 20:03
7-1
a.
(1) 初始时,
(2) 令
(3) 令
(4) 令
b.
- 如果子数组以升序互不相同的元素排列,那么将重复
j=j−1 直到j=1 ,然后将进行一次i=i+1=1 ,然后就会直接返回j=1 ,j 最小只能访问到A[1] ,不会访问子数组以外的数; - 无论如何首先
j 肯定至少进行一次j=j−1=r=12 ,然后因为x=A[p] ,所以第一次i=i+1=p ,然后就得停止。交换A[j]和A[i] 之后i<j ,所以至少还得进行一次j=j−1 ,所以j最大只能取到 r-1$。 - 因为至少会进行一次
i=i+1 ,所以i 最小只能访问A[p] ;而且因为A[j..r] 之间每个元素都大于等于x ,所以重复i=i+1 时,最多只能使i=j+1 ,所以i 最大只能访问到A[r] 不会超出子数组A[p..r] 的范围。
c.
根据上面b小问的分析即可得知。
d.
从算法第5行到第7行知,每次循环中
e.
QUICKSORT(A,p,r)1 if p < r2 q = HOARE-PARTITION(A,p,r) 3 QUICKSORT(A,p,q)4 QUICKSORT(A,q+1,r)
7-2
a.
此时算法的随机性完全没有影响,算法的时间复杂度为
b.
PARTITION_1(A,p,r)1 x = A[r]2 i = p3 t = r4 j = p5 while j <= t6 if A[j] > x7 exchange A[j] with A[t]8 t = t - 19 else if A[j] < x10 exchange A[i] with A[j]11 i = i + 112 j = j + 113 else j = j + 114 return i and j
c.
RANDOMIZED-PARTITION_1(A, p, r)1 i = RANDOM(p, r)2 exchange A[r] with A[i]3 return PARTITION_1(A, p, r)RANDOMIZED-QUICKSORT(A, p, r)1 if p < r2 int[] q = RANDOMIZED-PARTITION_1(A, p, r)3 if q[1] == p and q[2] = r4 return5 RANDOMIZED-PARTITION_1(A, p, q[1] - 1)6 RANDOMIZED-PARTITION_1(A, q[2] + 1, r)
d.
直接将
后面的分析是一样的。
7-3
a.
b.
首先PARTITION过程的运行时间为
c.
d.
e.
假设对于某个正常数
最后一步去适当的
7-4
a.
算法前面和快速排序是一样的,调用PARTITION后,递归调用了左边的子数组;然后通过将
b.
当数组本身就是按升序排列的,那么每次PARTITION操作后,左边的数组大小都只比原先的小一,所以一共会递归调用
c.
TAIL-RECURSIVE-QUICKSORT(A, p, r)1 while p < r2 q = PARTITION(A, p, r)3 if q <= (r+p)/24 TAIL-RECUISIVE-QUICKSORT(A, p, q-1)5 p = q + 16 else7 TAIL-RECURSIVE-QUICKSORT(A, q + 1, r)8 r = q
7-5
a.
b.
当
c.
三数取中法的好划分概率为
平凡实现为
当
增加了
d.
不知道。。。
7-6
不会。。。
- 算法导论第三版第七章思考题
- 算法导论第三版第四章思考题
- 算法导论第三版第五章思考题
- 算法导论第三版第六章思考题
- 算法导论第七章最后思考题
- 算法导论第三版 第三章 思考题 3-6
- 算法导论(第三版) 第三章思考题
- 算法导论(第三版) 第二章思考题
- 算法导论第三版第8章思考题
- 算法导论第三版-思考题2-1
- 《算法导论》第三章-思考题(参考答案)
- 算法导论第七章-思考题7-1HOARE-QUICKSORT-C++
- 算法导论第七章思考题7-5三数取中划分 -c++
- 算法导论第三版第七章课后答案
- 算法导论第八章思考题
- 算法导论第七章思考题7-2针对相同元素的快速排序-c++
- 算法导论(三版):第二章思考题
- 对区间的模糊排序(原题算法导论第三版思考题7-6)
- 单点登录cas常见问题(十二) - Principal的id对应数据库表中的哪个字段?
- Qt信号和槽
- 科研经验
- 算法_8:贪心算法
- java项目——URLRewrite实现url地址伪静态化
- 算法导论第三版第七章思考题
- NTHU OJ 10924
- 免费帮助台软件、客户服务管理(CSM)和支持门票应用程序(PHP版本)
- Cpp_多态
- 从初识Linux到离不开系列(末)进程间通信
- ANDROID 项目 Proguard对android.support.v4.包的配置
- iOS中的 ARC 与 MRC混编
- 2016-2-29
- 【技术】左右晃动