logo资料库

华南师范大学08算法设计技巧与分析试卷.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
计算机学院 2007-2008 学年(下)学期期末考试试卷 《 算法设计与分析 》试卷(A) 专业 年级 06 班级 姓名 学号 题号 一 得分 二 三 四 五 六 七 总分 一、 简答题(每小题 5 分,共 20 分) 1、如何理解算法的时间复杂度?如何区别表示算法渐近复杂度三个记号O 、W 、Q ? 2、什么是最优算法?请基于事实“以比较为基础的排序算法的时间下界是W 一个基于比较的最优排序算法。 3、图有宽度优先搜索和深度优先搜索算法。如果图用邻接矩阵来表示,那么这两种算法的 (nlogn)”列举 时间复杂度是什么?如果图用邻接表来表示呢? 4、快速排序算法是根据分治策略来设计的,其基本思想是什么?快速排序算法的最坏及平 均情况的时间复杂度分别是多少? 二、计算题(共 15 分) 1、(7 分)求解递推关系: T(n)=6T(n-1) -9T(n-2), n=2;T(0)=T(1)=1。 (nlogn)。 2、(8 分)证明:log1+log2+… +log n=Q 三、算法分析题(10 分) 考虑在序列 A[1..n]中找最大最小元素的问题。一个分治算法描述如下:如果 n≤2 就直 接求解。否则,将序列等分成两个子序列 A[1..n/2]和 A[n/2+1..n],分别找出这两子序列的最 大最小元素 x1,y1 和 x2,y2;然后据此求出 A[1..n]的最大元素 x=max{x1,x2}及最小元素 y=min{y1,y2}。请给出该算法计算时间 T(n)满足的递归方程,并解方程来确定算法的时间复 杂度。假定 n=2k(k 为正整数)。 四、 归纳技术应用题(共 10 分) 1、(4 分)简述基数排序算法的基本思路和算法时间复杂度; 2、(6 分)考虑使用基数排序算法对下列8 个数据进行排序,请给出中间排序的结果。 2756 7352 3725 3762 5273 2375 5732 5627 五、 动态规划法应用题(共 15 分) 考虑用动态规划法求解矩阵连乘 M1M2M3M4M5 的最优运算(即元素乘法次数最少)的 次序,其中 M1:5· 6,M2:6· 4,M3:4· 8,M4:8· 3,M5:3· 5。 1、(5 分)设 C[i,j]表示矩阵连乘MiMi+1… Mj 按照最优次序运算所需要的元素乘法次数。请 给出 C[i,j]递推计算的公式。 2、(10 分)根据递推公式填写下表,包括 C[i,j]的值及对应的最优运算次序的加括号方式。 - 1 -
C[1,1]=0 M1 C[1,2]= C[2,2]= C[1,3]= C[2,3]= C[3,3]= C[1,4]= C[2,4]= C[1,5]= C[2,5]= C[3,4]= C[3,5]= C[4,4]= C[4,5]= C[5,5]= A 5 D 5 E 10 15 20 15 H F 10 15 B C 25 展 示 六、 贪心法应用题(共 10 分) 1、(4 分)Prim 算法是求最小生成树的贪心算法,请简述 Prim 算法的基本思想。 2、(6 分)用 Prim 算法求下图的最小生成树。要求用图或表格 主要计算过程。 七、 算法设计题(共 20 分) 1、(4 分)简述设计回溯算法的基本步骤。2、(10 分)在回溯法应用的综合性实验中,根据 你做选做的题目,简要叙述你是如何用回溯法解决这个问题的(即给出求解该问题的回溯算 法的几个要素)。3、(6 分)本课程中学习了分治法、贪心法、动态规划法、回溯法等设计 算法的基本策略,在解决问题时应如何选用这些策略设计算法?结合实验谈谈体会。 - 2 - 20 G 5
计算机学院 2007-2008 学年(下)学期期末考试试卷 《 算法设计与分析 》试卷(B) 专业 年级 06 班级 姓名 学号 题号 一 得分 二 三 四 五 六 七 总分 一、简答题(每小题 5 分,共 20 分) 1、算法 A 的计算时间T1(n)满足递归关系式:T1 (n)=3T1 (n-1)+1,, n>1;;T1 (1)=1。算法 B 的计算时间T2(n)= 2n3+1000nlog10n+100n。请使用记号Q 分别表示 T1 (n)和 T2 (n)。 2、设 G=Æ V,Eæ 是无向图,n=|V|,m=|E|,且 m=O(n1.99)。如果要求图 G 的最小成生树,你愿 意选择哪一个算法: Prim 算法还是 Kruskal 算法?为什么? 3、在有向图的深度优先搜索中,边被分为哪几类? 4.设 A[1..n]是元素取值于区间[1..2n]的整型数组,考虑对 A 进行排序。你认为归并排序算 法 MERGERSORT 和基数排序算法 RADIXSORT 哪一个可能更快?简述原因。 二、 计算题(共 15 分) 1、(7 分)求解递推关系: T(n)=3T(n- 1)+4T(n- 2),n=2;T(0)=1,T(1)=2。 2、(8 分)证明:对于任意正整数 k 有 1k+2 k +…+n k =Q 三、算法分析题(共 10 分) (nk+1)。 考虑求下列数列的通项an:a0=0,a1=1,an=an-1+an-2(n>1)。下面是使用 C 语言表示的 递归算法: int A(int n) { if (n= =0) return 0; if (n= =1) return 1; else return A(n- 1)+A(n- 2); (n)时间即可求出FA(n)吗?简述你的改进办法。 } 1、(5 分)分析算法的时间复杂度。 2、(5 分)你能够改进算法使得用Q 四、(共 10 分)考虑在 8 个元素的集合 A(1:8)=(10, 35, 5, 40, 20, 25, 30, 15)中找最大和最小 元素。 1、(6 分)说明用分治法求解此问题的基本思路,并画出求解过程; 2、(4 分)分析求解过程中所作的元素比较次数,并将这一结果与直接求解法所需作的元素 比较次数进行对比。 五、(共 15 分)请使用动态规划法求解下列 0-1 背包问题实例:n=4 个物品,大小分别为 W={2,3,4,6},价值分别为 P={3,6,5,9},背包容量为M=10。 - 3 -
1、(5 分)请给出递推计算公式。 2、(10 分)根据递推计算公式用表格展示出计算过程,并给出最优结果。 六、(共 10 分)考虑用哈夫曼算法来找字符a,b,c,d,e,f 的最优编码。这些字符出现在文件中 的频数之比为 20:10:6:4:44:16。要求: 1、(4 分)简述使用哈夫曼算法构造最优编码的基本步骤; 2、(6 分)构造对应的哈夫曼树,并据此给出a,b,c,d,e,f 的一种最优编码。 七、算法设计题(共 20 分) 1、(4 分)请给出设计回溯算法的主要步骤。 2、(10 分)考虑使用回溯法解 4 皇后问题,解空间取为由 1,2,3,4 的 4!种排列所组成。要求: 用文字描述定义剪枝操作;画出用回溯算法找出一个解所产生的部分搜索树,并写出这个解。 3、(6 分)本课程中我们学习了分治法、贪心法、动态规划法、回溯法等几种设计算法的基 本策略,在解决实际问题时应如何来选用这些策略来进行算法设计?谈谈你的体会。可以结 合所做过的实验情况来谈。 - 4 -
分享到:
收藏