- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法分析与设计》11月考试前练习题附答案
《算法分析与设计》2016年11月考试考前练习题
一、简答题
1. 算法设计通常有哪些方法?(至少列出4种)并指出哪些算法具有的某个共有性质。
解答:
算法设计方法有分治算法,贪心算法,动态规划算法,归纳算法,回溯算法,分支限界算法等。
分治算法,贪心算法,动态规划算法等算法都具有最优子结构性质。
2. Fibonacci数列如下定义:
(1)请设计一个递归算法,计算F(n)。
(2)分析算法的时间复杂性。
解答:
(1)int fibonacci(int n) {
If(n = 1)return 1;
return fibonacci(n-1)+fibonacci(n-2);
}
(2)T(n)=T(n-1)+T(n-2)。
3. 动态规划算法的两大基本要素分别是?
解答:
最优子结构性质和子问题的重叠性质。
4. 简述设计动态规划算法的主要步骤。
解答:
(1)找出最优解的性质,并刻划其结构特征(2)递归地定义最优值(3)以自底向上的方式计算出最优值(4)根据计算最优值时得到的信息,构造最优解。
5. 给定如下顺序搜索算法:
int seqSearch(Type *a, int n, Type k){
for(int i=0;in;i++)
if (a[i]==k) return i;
return -1;}
则最坏时间复杂性和最好时间复杂性分别是多少?
解答:
最坏时间复杂性是O(n),最好时间复杂性是O(1)。
6. 用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)为多少?
Bool Color::OK(int k)
{//
for(int j=1;j=n;j++)
if((a[k][j]= =1)(x[j]= =x[k])) return false;
return true;
}
解答:
O(mn)
7. 下面程序段的所需要的计算时间为( )。
int MaxSum(int n, int *a, int besti, int bestj)
{
int sum=0;
for(int i=1;i=n;i++){
int thissum=0;
for(int j=i;j=n;j++){
thissum+=a[j];
if(thissumsum) {
sum=thissum;
besti=i;
bestj=j;
}
}
}
return sum;
}
解答:
O(n2)
8. 简述什么是稳定的排序算法?
解答:
如果一个排序算法保留了等值元素在输入中的相对顺序,它就被称为是稳定的。
9. 算法设计的质量指标。
解答:
正确性:算法应满足具体问题的需求;
可读性:算法应该好读,以有利于读者对程序的理解;
健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般这两者与问题的规模有关。
10. 对下图中的有向图,应用Dijkstra算法计算从源顶点4到其它顶点间最短路径的过程。
解答:
11. 为什么用分治法设计的算法一般有递归调用?
解答:
子问题的规模还很大时,必须继续使用分治法,反复分治,必然要用到递归。
12. 简述动态规划方法所运用的最优化原理。
解答:
最优化原理用数学化的语言来描述:假设为了解决某一优化问题,需要依次作出n个决策D1,D2,…,Dn,如若这个决策序列是最优的,对于任何一个整数k,1 k n,不论前面k个决策是怎样的,以后的最优决策只取决于由前面决策所确定的当前状态,即以后的决策Dk+1,Dk+2,…,Dn也是最优的。
13. 简述归并排序算法的分治方法。
解答:
归并排序的分治是将数组从中间分开,分别对前后来那个部分进行排序,将排序后的两个数组合并成整个数组的排序。这样分治为递归过程,直到一个元素时返回。
14. 简述回溯法与分支限界法的相同点。
解答:
分支限界法与回溯法的相同点是:都是一种在问题的解空间树T中搜索问题解的算法。
15. 什么是贪心选择性质和最优子结构性质?
解答:
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。
二、算法分析解答题
1. 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,并且在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时
文档评论(0)