收藏 分享(赏)

厦门大学-算法分析试卷-08即.pdf

上传人:weiwoduzun 文档编号:5522216 上传时间:2019-03-06 格式:PDF 页数:7 大小:291.33KB
下载 相关 举报
厦门大学-算法分析试卷-08即.pdf_第1页
第1页 / 共7页
厦门大学-算法分析试卷-08即.pdf_第2页
第2页 / 共7页
厦门大学-算法分析试卷-08即.pdf_第3页
第3页 / 共7页
厦门大学-算法分析试卷-08即.pdf_第4页
第4页 / 共7页
厦门大学-算法分析试卷-08即.pdf_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、Page 1 of 7 一填空题(每空 3 分,共 24 分) 1算法的时间复杂性指算法中 的执行次数。 2 设 Dn 表示大小为 n 的输入集合,t(I) 表示输入为 I 时算法的运算时间, p(I) 表示输入 I 出现的概率,则 算法的平均情况下时间复杂性 A(n)= 。 3. f(n)=n 2 +log 50 n ,g(n)= 2n logn ,则 O(f(n)+O(g(n)= 。 4 分治算法的时间复杂性常常满足如下形式的递归方程: 0 0 n n , g(n) af(n/c) f(n) n n , d ) n ( f 其中,g(n)表示 。 5 对于下面的确定性快速排序算法 , 只要

2、在步骤 3 前通过 算法, 就可得到一个随机化快速排 序算法,获得很好的平均性能。 算法 QUICKSORT 输入:n 个元素的数组 A1n 。 输出:按非降序排列的数组 A 中的元素。 1. quicksort(1, n) / 对 Alowhigh 中的元素按非降序排序。 2. if lowhigh then 3. w=SPLIT(A, low, high) / 算法 SPLIT 以 Alow 为主元将 Alowhigh 划分成两部 / 分,返回主元的新位置。 4. quicksort (A, low, w-1) 5. quicksort (A, w+1, high) 6 end if en

3、d quicksort 6. 下面算法的基 本运算 是 运算,该算法的时间复杂性阶为 ( ) 。 算法 SPLIT 输入:正整数 n ,数组 A1n 。 SPLIT : i=1 x=A1 for j=2 to n if Aj=x then i=i+1 if i jth enA i Aj end if end for Ai A1 w=i return w, A 厦门大学算法分析课程试卷 软件学院 软件工程系 08 级 软件工程专业 主考教师:刘昆宏 试卷类型: (A 卷)Page 2 of 7 / end SPLIT 7. 假设某算法的 T(n)=52 n ,在某台机上实现并完成该算法的时间为

4、t 秒。如果使用 64 倍的运算时间在 同一台机子上进行计算,则能解的问题规模 为 。 1. 元运算 2. n D I I t I p ) ( ) ( 3. n 2 4. 将规模为 n 的问题分解为子问题以及组合相应的子问题的解所需的时间 5. 舍伍德 6. 比较 n7 . n 1 = n + 6 二选择题(每小题 2 分,共 12 分) 1 动态规划算法包括所有具有如下特征的算法 : 首先将原问题分成更小的子问题 , 保存这些子问题的解 , 并由 它们来计算原问题的一个解。下列的问题求解中哪一个不能使用动态规划算法?( ) A 最长公共子序列问题 B 图像无损压缩问题 C 0-1背包问题 D

5、 二分搜索问题 2. 分派问题一般陈述如下 : 给n 个人分派n 件工作 , 把工作j 分派给第i 个人的成本为cost (i ,j),1 i ,j n , 要求在给每个人分派一件工作的情况下使得总成本最小 。 此问题的解可表示成n 元组 (X1, ,Xn),其 中Xi 是 给第i 个人分配的工作号,且Xi Xj (i j )。此解空间的状态空间有( )个n 元组,此解空间的状态空间树 被称为( )。 A n n B n ! C 2 n D n E 排列树 F 子集树 3 算法与程序的区别在于算法具有( )。 A 能行性 B 确定性 C 有穷性 D 输入和输出 4 在如下四实例上分别运行快速排

6、序算法,其中在( )上算法所作元素比较次数最少。 A (5 ,5 ,5 ,5 ,5 ) B (3 ,1 ,5 ,2 ,4 ) C (1 ,2 ,3 ,4 ,5 ) D (5 ,4 ,3 ,2 ,1 ) 5以下说法正确的是( ) A 贪心法通过分阶段地挑选最优解, 对所有问题都能很快获得问题的最优解。 B. 一个问题是否适合用动态规划算法要看它是否具有重叠子问题。 C 分治法通过把问题化为较小的问题来解决原问题,从而简化或减少了原问题的复杂度 。 D 分支限界法是一种深度优先搜索算法。 6以下说法错误的是( ) A 数值概率算法总能求解得到问题的一个解,而且所求得的解总是正确的。 B. 舍伍德算

7、法不是避免算法的最坏情况,而是设法消除这种最坏情形行为与特定实例之间的关联性。 C 蒙特卡罗算法可以求得问题的一个解,但该解未必正确。 D 拉斯维加斯算法通常以正的概率给出正确答案。 1. D. 2. B.E. 3. C. 4. B. 5. C. 6. A. 三算法设计分析题( 64 分) 1 (10 分)用 O 、 、 表示函数 f 与 g 之间的关系: (1) f (n)=100 g(n)= 100 n (2) f(n)=6n+n n log g(n)=3nPage 3 of 7 (3) f(n)= n/logn-1 g(n)= n 2 (4) f(n)= 2 2 n n g(n)= n

8、3 (5) f(n)= n 3 log g(n)= n 2 log (1) f(n)= O(g(n) (2) f(n)= (g(n) (3) f(n)= (g(n) (4) f(n)= O(g(n) (5) f(n)= (g(n) 2 (10 分)设 n 个不同的整数按升序存于数组 A1n 中,求使得 Ai=i 的下标 i 。下面是求解该问题的 分治算法。 算法 SEARCH 输入:正整数 n ,存储 n 个按升序排列的不同整数的数组 A1n 。 输出:A1n 中使得 Ai=i 的一个下标 i ,若不存在,则输出 no solution 。 i=find ( (1) ) if i0 then

9、output i else output “no solution” end if / end SEARCH 过程 - find (low, high) / 求 Alowhigh 中使得 Ai=i 的一个下标并返回,若不存在,则返回 0 。 if (2) then return 0 else mid= 2 / ) high low ( if (3) then return mid else if Amidhigh (3) Amid=mid (4) mid+1, high (5) find(low, mid-1) 3 (12 分) 图中的共有 n 项工作,第 i 项工作在 si 时间开始,在 f

10、i 时间结束 。如果两项工作没有交叠, 则称它们相容。Page 4 of 7 (1) 如果希望找出最大的相容工作子集,你准备 采用 哪种类型 算法(分治,动态规划等 ) ?( 1 分) (2) 设计相应的算法解决这个问题 , 请写出解决问题算法对应的 伪代码 , 说明算法初始条件 , 并作出适 当的标注 。 (5 分) (3) 请分析或证明 这种方法能否获得 最优解 。 (6 分) 3. 解答:(1) 贪 心算法 (2) Sort jobs by earliest finish time. Try to add each job in order. Sort jobs by finish ti

11、mes so that f1 = f2 = . = fn Solution set A is empty at start for j = 1 to n if (job j compatible with A) / Compare j to all jobs in A. If incompatible, break loop Add j to A return A (3) 从最优子结构和贪心选择性质两个角度分析 。 (1)假 设E 为给定工作的集合, 按结束时间的非 减序排序。 如果该问题有一个最优解A 不包含工作1,且A 中的工作也按活动的非减序排序, 则可以将 A 中的第一个活动替换为工作

12、1 而不违背相容约束,从而构成最优解B 。由于A 是最优解,则其包含的 工作数量最多。而B 也是最优解,因其包含的工作数量和A 一样多。可见存在以贪心选择开始的最优 活动方案。 (2)如 果A 是原问题的最优解 , 则A=A 1 为E= i E, si fi 的最优解。 因为如果存在E 的一个最优解B 比A 包含的工作个数更多,则将工作1 加入B 后,会生成比A 更多获得的E 的最优解。 因此,满足最优子结构性质。 4. ( 10 分 ) 设计一个算法 , 描述算法的思路, 找出由 n 个数组成的序列的最长单调递增子序列 , 分析相应 的时间复杂度。 (时 间复杂度越低的算法分数越高 ) 5.

13、 (10 分 ) 请设计 两种算法 找到下图中的最短路径 , 用图表的方式 给出解决问题的过程 。 如果是用搜索算 法,请画出搜索树。说明相关算法的类型。Page 5 of 7 5. 解答: 方法 1 : Dijkstra 算法: 方法 2 : 优先队列式搜索:相关搜索图例如下: 方法 3 : 回溯法搜索:相关搜索图例如下:Page 6 of 7 6. (12 分)设有如下结构的移动将牌游戏: BBWWE 其中,B 表示黑色将牌,W 表是白色将牌,E 表示空格。游戏的规定走法是: (1) 任意一个将牌可移入相邻的空格,规定其代价为 1 ; (2) 任何一个将牌可相隔 1 个其它的将牌跳入空格,

14、其代价为 2 。 游戏要达到的目标是把所有 W 都移到 B 的左边。 对 这个问题 , 请设计一个优先队列式分支限界算法 (只需给出相关的优先函数,并 画出用这个算法产 生 的搜索树 ) 。 解:设 f(x)=当前移动的代价+3*当前节点中每个 W 左边的 B 的个数,其搜索树如下: BBWWE BBEWW BBWEW BBEWW BEWBW EBWBW WBEBW4 9 17 8 13 28 16 1 8 9 17 8 13 28 16 18 14 32 29 9 20 19 32 f(x)=0+12=12 f(x)=2+12=14 f(x)=1+12=13 f(x)=2+12=14 f(x)=3+9=12 f(x)=4+9=13 f(x)=6+6=12Page 7 of 7 WBWBE WBWEB WEWBB f(x)=8+3=11 f(x)=9+3=12 f(x)=11+0=11

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报