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

《算法设计与分析》考试题目及答案解析

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

{

k=i;

while(k<=n&&s[k].tag!=0) k++; if(k>n) break;//-----没有ai,跳出 else {

for(j=k+1;j<=n;j++) if(s[j].tag==0)

if(s[k].a>s[j].a) k=j; swap(s[i].index,s[k].index); swap(s[i].tag,s[k].tag);

} }

l=i;//-----记下当前第一个bi的下标 for(i=l;i<=n-1;i++) {

k=i;

for(j=k+1;j<=n;j++)

if(s[k].b

swap(s[i].index,s[k].index); //-----只移动index和tag swap(s[i].tag,s[k].tag); } } 2.

void binarysearchtree(int a[],int b[],int n,int **m,int **s,int **w) { int i,j,k,t,l;

for(i=1;i<=n+1;i++) {

w[i][i-1]=a[i-1]; m[i][i-1]=0; }

for(l=0;l<=n-1;l++)//----l是下标j-i的差 for(i=1;i<=n-l;i++) {

j=i+l;

w[i][j]=w[i][j-1]+a[j]+b[j];

m[i][j]=m[i][i-1]+m[i+1][j]+w[i][j]; s[i][j]=i;

for(k=i+1;k<=j;k++) {

t=m[i][k-1]+m[k+1][j]+w[i][j]; if(t

m[i][j]=t; s[i][j]=k; } } }

}

一、 填空题(本题15分,每小题1分)

1、算法就是一组有穷的 ,它们规定了解决某一特定类型问题的 。 2、在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模型。3个基本计算模型是 、 、 。

3、算法的复杂性是 的度量,是评价算法优劣的重要依据。

4、计算机的资源最重要的是 和 资源。因而,算法的复杂性有 和 之分。

5、f(n)= 6×2n+n2,f(n)的渐进性态f(n)= O( )

6、贪心算法总是做出在当前看来 的选择。也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的 。

7、许多可以用贪心算法求解的问题一般具有2个重要的性质: 性质和 性质。 二、简答题(本题25分,每小题5分) 1、 简单描述分治法的基本思想。

2、 简述动态规划方法所运用的最优化原理。 3、 何谓最优子结构性质? 4、 简单描述回溯法基本思想。 5、 何谓P、NP、NPC问题

三、算法填空(本题20分,每小题5分) 1、n后问题回溯算法

(1)用二维数组A[N][N]存储皇后位置,若第i行第j列放有皇后,则A[i][j]为非0值,否则值为0。

(2)分别用一维数组M[N]、L[2*N-1]、R[2*N-1]表示竖列、左斜线、右斜线是否放有棋子,有则值为1,否则值为0。 for(j=0;j

if( 1 ) /*安全检查*/

{ A[i][j]=i+1; /*放皇后*/ 2 ;

if(i==N-1) 输出结果;

else 3 ;; /*试探下一行*/ 4 ; /*去皇后*/ 5 ;; }

2、数塔问题。有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一起走到底层,要求找出一条路径,使路径上的值最大。 for(r=n-2;r>=0;r--) //自底向上递归计算 for(c=0; 1 ;c++)

if( t[r+1][c]>t[r+1][c+1]) 2 ; else 3 ; 3、Hanoi算法 Hanoi(n,a,b,c)

if (n==1) 1 ; else

{ 2 ; 3 ; Hanoi(n-1,b, a, c); }

4、Dijkstra算法求单源最短路径

d[u]:s到u的距离 p[u]:记录前一节点信息 Init-single-source(G,s) for each vertex v∈V[G] do { d[v]=∞; 1 } d[s]=0

Relax(u,v,w)

if d[v]>d[u]+w(u,v)

then { d[v]=d[u]+w[u,v];

2

}

dijkstra(G,w,s)

1. Init-single-source(G,s) 2. S=Φ 3. Q=V[G]

4.while Q<> Φ do u=min(Q) S=S∪{u}

for each vertex 3 do 4 四、算法理解题(本题10分) 根据优先队列式分支限界法,求下图中从v1点到v9点的单源最短路径,请画出求得最优解的解空间树。要求中间被舍弃的结点用×标记,获得中间解的结点用单圆圈○框起,最优解用双圆圈◎框起。

五、算法理解题(本题5分)

设有n=2k个运动员要进行循环赛,现设计一个满足以下要求的比赛日程表: ①每个选手必须与其他n-1名选手比赛各一次; ②每个选手一天至多只能赛一次; ③循环赛要在最短时间内完成。

(1)如果n=2k,循环赛最少需要进行几天; (2)当n=23=8时,请画出循环赛日程表。 六、算法设计题(本题15分)

分别用贪心算法、动态规划法、回溯法设计0-1背包问题。要求:说明所使用的算法策略;写出算法实现的主要步骤;分析算法的时间。

七、算法设计题(本题10分)

通过键盘输入一个高精度的正整数n(n的有效位数≤240),去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n 和s,寻找一种方案,使得剩下的数字组成的新数最小。

【样例输入】 178543 S=4

【样例输出】 13

一、填空题(本题15分,每小题1分) 1.规则 一系列运算

2. 随机存取机RAM(Random Access Machine);随机存取存储程序机RASP(Random Access Stored Program Machine);图灵机(Turing Machine) 3. 算法效率

4. 时间 、空间、时间复杂度、 空间复杂度 5.2n

6. 最好 局部最优选择

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