第一范文网 - 专业文章范例文档资料分享平台

华中科技大学《算法设计与分析》复习参考题

来源:用户分享 时间:2025/6/26 5:11:27 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

13.根据教材中所给出的二分检索策略,写一个二分检索的递归过程。 Procedure BINSRCH(A, low, high, x, j) integer mid

if low≤high then

mid←?(low?high)/2?

if x=A(mid) then j←mid; endif

if x>A(mid) then BINSRCH(A, mid+1, high, x, j); endif if x

14.作一个“三分”检索算法。它首先检查n/3处的元素是否等于某个x的值,然后检查2n/3处的元素;这样,或者找到x,或者把集合缩小到原来的1/3。分析此算法在各种情况下的计算复杂度。

Procedure ThriSearch(A, x, n, j)

integer low, high, p1, p2 low←1; high←n while low≤high do

p1←?(2low?high)/3? ; p2←?(low?2high)/3?

case

:x=A(p1): j←p1; return :x=A(p2): j←p2; return :xA(p2): low←p2+1

:else: low←p1+1; high←p2-1

end case

repeat j←0

end ThriSearch

?g(n)T(n)= ??T(n/3)?f(n)

n足够小否则

g(n)= O(1) f(n)= O(1) 成功:

O(1),

O(log3(n)), O(log3(n))

最坏

最好, 平均,

失败:

O(log3(n)), O(log3(n)), O(log3(n)) 最好, 平均, 最坏

15.对于含有n个内部结点的二元树,证明E=I+2n,其中,E,I分别为外部和内部路径长度。 证明:数学归纳法

①当n=1时,易知E=2,I=0,所以E=I+2n成立; ②假设n≤k(k>0)时,E=I+2n成立;

③则当n=k+1时,不妨假定找到某个内结点x为叶结点(根据二元扩展

树的定义,一定存在这样的结点x,且设该结点的层数为h),将结点x及其左右子结点(外结点)从原树中摘除,生成新二元扩展树。此时新二元扩展树内部结点为k个,则满足Ek=Ik+2k,考察原树的外部路径长度为Ek+1= Ek-(h-1)+2h,内部路径长度为Ik+1=Ik+(h-1),所以Ek+1= Ik+2k+h+1= Ik+1+2k+2= Ik+1+2(k+1),

综合①②③知命题成立。

16.以比较为基础(基本操作)的分类算法最坏情况的时间下界是什么? 答: ?(nlogn)

17对线性存储的有序表中元素的以比较为基础的检索算法最坏时间的下界是什么?简要说明理由。 答: ?log(n?1)?

对线性存储的有序表中元素的以比较为基础的检索算法的执行过程都可以用二元判定树来描述。该树的每个内结点表示一次元素比较,因此对检索的最坏情况而言,该树最少含有n个不同的内结点。检索算法最坏时间不大于该树中由根到一个叶子的最长路径长(树高)。对有n个结点的二元树其最小树高为

?log(n?1)?,所以对线性存储的有序表中元素的以比较为基础的检索算法最坏时间的下界是?log(n?1)?。

18.简要说明选择问题算法中二次取中值规则的作用。

答:通过选择划分元素V使其尽量靠近元素集合的中间可以得到一个最坏情况时间复杂度是O(n)的选择算法。使用二次取中值规则可以选出满足要求的划分元素V。

19.给出斯特拉森矩阵乘法算法执行时间的递归关系式,并对其求解计算时间复杂度。

答:斯特拉森矩阵乘法算法执行时间的递归关系式为:

?bn?2 T(n)= ? 2n?2?7T(n/2)?an其中a和b是常数。

求解这个递归式,得

T(n)?7[7T(n/4)?a(n/2)]?an?7T(n/4)?an(1?7/4)

2222

?7[7T(n/8)?a(n/4)]?an(1?7/4)

222?7T(1)?an[1?7/4?(7/4)?...?(7/4)?7?an[(7/4)?1]/(7/4?1)k2kk22k?1]

?(c?1)7?(c?1)nk

log7?O(n?O(nlog7) )

2.8120.通过手算证明(4.9)和(4.10)式确实能得到C11,C12,C21和C22的正确值。

P=(A11+A22)(B11+B22) T=(A11+A12)B22

Q=(A21+A22)B11 U=(A21-A11)(B11+B12) R=A11(B12-B22) V=(A12-A22)(B21+B22) S=A22(B21-B11) C11=P+S-T+V

=(A11+A22)(B11+B22) +A22(B21-B11) -(A11+A12)B22 +(A12-A22)(B21+B22) =A11B11+A22B11+A11B22+A22B22+A22B21

-A22B11-A11B22-A12B22+A12B21+A12B22-A22B21-A22B22 =A11B11 +A12B21 C12=R+T

= A11B12-A11B22 +A11B22+A12B22 = A11B12 +A12B22 C21=Q+S

= A21B11+A22B11 +A22B21-A22B11 = A21B11 +A22B21 C22=P+R-Q+U

=(A11+A22)(B11+B22)+A11(B12+B22)-(A21+A22)B11 +(A21-A11)(B11+B12) =A11B11+A22B11+A11B22+A22B22+A11B12-A11B22-A21B11-A22B11+A21B11+A21B12 -A11B11-A11B12 =A22B22+A21B12

21.过程MERGESORT的最坏情况时间是O(nlogn),它的最好情况时间是什么?能说归并分类的时间是Θ(nlogn)吗?

最好情况:是对有序文件进行排序。

分析:在此情况下归并的次数不会发生变化----log(n)次

归并中比较的次数会发生变化(两个长n/2序列归并)

最坏情况

两个序列交错大小,需要比较n-1次

最好情况

一个序列完全大于/小于另一个序列,比较n/2次

差异都是线性的,不改变复杂性的阶

因此最好情况也是nlogn, 平均复杂度nlogn。 可以说归并分类的时间是Θ(nlogn)

22.写一个“由底向上”的归并分类算法,从而取消对栈空间的利用。 答:见《数据结构》

算法MPass(R,n,1ength.X)

MP1 [初始化]

i?1 .

MP2 [合并相邻的两个长度为length的子文件]

WHILE i ≤ n – 2*length + 1 DO

(Merge(R,i,i+length–l,i+2*length–1.X). i?i+2*length ) .

MP3 [处理余留的长度小于2*length的子文件] IF i+length–1 < n

THEN Merge(R,i,i+length–1,n. X)

ELSE FOR j = i TO n DO Xj←Rj ▌

算法MSort(R,n) // 直接两路合并排序算法,X是辅助文件,其记录结构与R相同

MS1 [初始化]

length?1 .

MS2 [交替合并]

WHILE length < n DO

(MPass(R,n,length.X). length?2*length if length > n

then FOR j = 1 TO n DO Rj←Xj else MPass(X,n,length.R). length?2*length)

endif )▌

23.什么是约束条件?什么是可行解?什么是目标函数?什么是最优解?并举例说明。

答:有一类问题,解由输入的某个子集组成,但是这个子集必须满足某些事先给定的条件。那些必须满足的条件称为约束条件。

满足约束条件的子集称为可行解。

为了衡量可行解的优劣,事先也给出一定的标准,这些标准一般以函数形式给出,称为目标函数。

使目标函数取极值的可行解称为最优解。

26.什么是贪心方法? 给出使用SPARKS语言描述的贪心方法的抽象化控制。 答:对求取最优解问题,选取一种度量标准,将输入按度量标准排序,并按此序

华中科技大学《算法设计与分析》复习参考题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3q5pa7atdj9emep57bp1_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top