算法设计与分析试题(三合一).(优选)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安电子科技大学网络教育
2010学年上学期期末考试模拟试题一
一、 填空题(每小题4分,共计40分)
1. 通常只考虑三种情况下的时间复杂度,即 情况、 情况和 情况
下的时间复杂度,分别记为T max (N)、T min (N) 和T avg (N),实践表明可操作性最好且最有实
际价值的是 情况下的时间复杂度。
2. n n 1032 的渐近表达式是 ,
)log(3n 的渐近表达式是 。
3. 根据符号O 的定义易知O(1)=O(2),用O(1)和O(2)表示同一个方法时,差别仅在于其中
的 。
4. 递归算法是指 的算法,
递归函数是指 的函数。
5. 贪心算法总是做出在当前看来_____________的选择,也就是说,贪心算法并不从整体最优考虑它
所做出的选择只是在某种意义上的________________。
6. 如果某问题具有________________________和___________________________两个重要性质,该问题可以用贪心算法求解。
7. 单源最短路径问题适合用_______________算法来求解、0-1背包问题适合用_____________算法来
求解。
8. 分治法是将一个规模为n 的问题分解为k 个规模________的子问题,这些子问题___________且与
原问题__________。递归地求解这些子问题,然后将各个子问题的解_________得到原问题的解。
9. 动态规划算法的两个基本要素是____________________和____________________。
10.___ 算法可以有效地解凸多边形最优三角剖分问题,而____________算法是求解最优
装载问题的有效方法。
二、简答题(每小题10分,共计40分)
1. 如果只需要求解问题的最优值,动态规划算法步骤是什么?如果需要构造最优解,则还需要加上什么步骤?
2. 请简述什么是贪心选择性质
3. 请简述什么是最小生成树。
4. 请简述贪心算法比动态规划算法效率高的原因。
三、算法分析和设计题(每小题10分,共计20分)
1. 请写出汉诺塔问题的简要递归算法。
2. 请设计一个在有序数组a[1..n]中二分搜索元素x的递归算法,要求若x在数组中则返回其下标
否则返回0.
2010学年上学期期末考试模拟试题二
一、填空题(每小题4分,共计40分)
1. 算法是满足输入、输出、确定性和有限性的指令序列。程序与算法不同,程序是算法用某种 _
的具体实现。程序不满足算法的性质。
2. 实践表明,可操作性最好且最有实际价值的是_____________情况下的时间复杂性。
3. 直接或间接调用自身的算法称为________________,用函数自身给出定义的函数是
___________________。
4. 找硬币问题是用______________求解的典型例子,而最长公共子序列问题则适合用_______________
求解。
5. 函数式An2+Bn+C的复杂度是________________,函数式Cn 复杂度是________________。
6. 对于表达式
3
n、2
5n、n
log
,n
20, 按照渐近阶从低到高的顺序排列, 顺序是________________、
________________、________________、________________。
7. 二分搜索算法是应用________________的典型例子。这个方法很好地利用n个元素________________
这个条件。可在最坏情况下用__________时间完成搜索,而顺序搜索法在最坏情况下需要___________时间完成搜索。
8. 如果某问题具有________________________和___________________________两个重要性质,该问题
可以用动态规划算法求解。
9. 备忘录方法是动态规划算法的变形。与动态规划算法不同的是,备忘录方法的递归方式是
________________________,而动态规划算法的递归方式则是________________________。
10.部分背包问题适用于_________________算法求解、而0-1背包问题适用于________________算法求
解。
二、简答题(每小题10分,共计40分)
1. 分治算法由哪些基本步骤组成?分治算法的时间复杂性常满足什么样的递归方程,写出该方程的一般
形式,并指出其中各参数的意义。
2. 0-1背包问题的形式化描述是什么?
3.请简述贪心算法的简要求解步骤。
4.请简述归并排序的基本思想。
三、算法分析和设计题(每小题10分,共计20分)
1. 请写出Fibonacci数列的递归定义式及其简要递归算法。
2. 请写出二分搜索算法的简单程序描述(用java或C++语言)。
2010年上学期期末考试模拟试题三
一、填空题(每小题4分,共计40分)
1. 算法是满足、、和等四个性质的指令
序列。
2. 算法复杂性的高低体现在运行该算法所需的计算机资源的多少上,计算机的资源最重要的是
和,因此算法的复杂性有和之分。3.与分治法类似,动态规划算法的基本思想是____________________________,先求解
_________________,然后从这些解得到原问题的解。与分治法不同的是,适合用动态规划算法求解的问题,经分解得到的子问题往往不是___________________的。
4. Java语言的类(class)体现了抽象数据类型(ADT)的思想,一般由4个部分组
成:、、和。
5. 抽象数据类型的英文简称是,它是算法的一个连同定义在该模型上并作为
算法构件的一组。
6. O(f)+O(g)= ,O(f)O(g)= 。
7. 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模_______的相同问题 , 以便各
个击破,_______________。
8. 动态规划算法的第一步通常是刻画最优解的结构。当问题的最优解包含了其__________________的最
优解时,称该问题具有最优子结构性质。
9. 动态规划算法与贪心算法的主要区别是___________________性质。
10.表示最优前缀码的二叉树总是一颗,即树中任一个结点都有两个儿子结点。
二、简答题(每小题10分,共计40分)
1. 请简述为什么部分背包问题可以用贪心算法求解,而0-1背包问题却不能用贪心算法求解。
2. 请写出如图语法树所对应的矩阵链相乘的最优完全加括号方式。