算法分析与设计期末考试试卷B卷.docx

上传人:b****2 文档编号:1429753 上传时间:2022-10-22 格式:DOCX 页数:5 大小:38.54KB
下载 相关 举报
算法分析与设计期末考试试卷B卷.docx_第1页
第1页 / 共5页
算法分析与设计期末考试试卷B卷.docx_第2页
第2页 / 共5页
算法分析与设计期末考试试卷B卷.docx_第3页
第3页 / 共5页
算法分析与设计期末考试试卷B卷.docx_第4页
第4页 / 共5页
算法分析与设计期末考试试卷B卷.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

算法分析与设计期末考试试卷B卷.docx

《算法分析与设计期末考试试卷B卷.docx》由会员分享,可在线阅读,更多相关《算法分析与设计期末考试试卷B卷.docx(5页珍藏版)》请在冰豆网上搜索。

算法分析与设计期末考试试卷B卷.docx

班级学号姓名

密封装订线密封装订线密封装订线

西南交通大学2015-2016学年第

(一)学期考试试卷

课程代码3244152课程名称算法分析与设计考试时间120分钟

题号

总成绩

得分

·

阅卷教师签字:

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

1、程序是

(1) 用某种程序设计语言的具体实现。

2、矩阵连乘问题的算法可由

(2)设计实现。

3、从分治法的一般设计模式可以看出,用它设计出的程序一般是(3)。

4、大整数乘积算法是用(4)来设计的。

5、贪心算法总是做出在当前看来(5)的选择。

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

6、回溯法是一种既带有(7)又带有(8)的搜索算法。

7、平衡二叉树对于查找算法而言是一种变治策略,属于变治思想中的(9)类型。

8、在忽略常数因子的情况下,O、和三个符号中,(10)提供了算法运行时间的一个上界。

9、算法的“确定性”指的是组成算法的每条(11)是清晰的,无歧义的。

10、问题的(12)是该问题可用动态规划算法或贪心算法求解的关键特征。

11、算法就是一组有穷(13),它们规定了解决某一特定类型问题的(14)。

12、变治思想有三种主要的类型:

实例化简,改变表现,(15)。

二、选择题(每题2分,共20分)

1、二分搜索算法是利用(  )实现的算法。

A、分治策略  B、动态规划法  C、贪心法   D、回溯法

2、衡量一个算法好坏的标准是()。

A、运行速度快B、占用空间少C、时间复杂度低D、代码短

3、能采用贪心算法求最优解的问题,一般具有的重要性质为:

()

A.最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质

C.最优子结构性质与重叠子问题性质

4、D.预排序与递归调用

4、常见的两种分支限界法为()

A、广度优先分支限界法与深度优先分支限界法;

B、队列式(FIFO)分支限界法与堆栈式分支限界法;

C、排列树法与子集树法;

D、队列式(FIFO)分支限界法与优先队列式分支限界法;

5、实现循环赛日程表利用的算法是(  )。

A、分治策略 B、动态规划法

C、贪心法 D、回溯法

6、回溯法的效率不依赖于下列哪些因素()

A.满足显约束的值的个数 B.计算约束函数的时间

C.计算限界函数的时间 D.确定解空间的时间

7、使用分治法求解不需要满足的条件是()。

A、子问题必须是一样的B、子问题不能够重复

C、子问题的解可以合并D、原问题和子问题使用相同的方法解

8、实现合并排序利用的算法是()。

A、分治策略 B、动态规划法 C、贪心法 D、回溯法

9、背包问题的贪心算法所需的计算时间为()

A、O(n2n)    B、O(nlogn)   C、O(2n)     D、O(n)

10、广度优先是()的一搜索方式。

A、分支界限法 B、动态规划法  C、贪心法   D、回溯法

三、算法及程序分析(共25分)。

1.阅读下面的程序,按要求回答问题:

(共10分)

#include

#include

intvis[101][101];

intmap[101][101];

intR,C;

intdp(inti,intj);

intmain()

{

inti,j,ans,max;

scanf("%d%d",&R,&C);

for(i=0;i

for(j=0;j

scanf("%d",&map[i][j]);

max=0;

for(i=0;i

memset(vis[i],-1,sizeof(vis[i]));

for(j=0;j

ans=dp(i,j);

if(ans>max)max=ans;

}

}

printf("%d\n",max);

return0;

}

intdp(inti,intj)

{

intmax=0;

if(vis[i][j]>0)

returnvis[i][j];

if(i-1>=0)

if(map[i-1][j]

if(max

max=dp(i-1,j);

if(i+1

if(map[i+1][j]

if(max

max=dp(i+1,j);

if(j-1>=0)

if(map[i][j-1]

if(max

max=dp(i,j-1);

if(j+1

if(map[i][j+1]

if(max

max=dp(i,j+1);

returnvis[i][j]=max+1;

}

(1)该程序采用什么算法?

(2分)

(2)设R=5,C=5,map的值如下所示时程序执行结束之后max的值是多少?

(共5分)

123106530151245720131411252320141816151930

(2)上述程序的时间复杂度是多少?

(共3分)

2.阅读下面的程序,按要求回答问题。

(共15分)

typedefstructSqList{

int*r;

intLength;

}SqList;

voidHeapSort(SqList*H)

{

inti;

intrc;

for(i=H->Length/2;i>0;--i)

HeapAdjust(H,i,H->Length);

for(i=H->Length;i>1;--i){

rc=H->r[1];

H->r[1]=H->r[i];

H->r[i]=rc;

HeapAdjust(H,1,i-1);

}

return;

}

voidHeapAdjust(SqList*H,ints,intm)

{

intrc,rm;

intj;

rc=H->r[s];

for(j=2*s;j<=m;j*=2){

if(jr[j]r[j+1])

++j;

if(rc>=H->r[j])

break;

rm=H->r[s];

H->r[s]=H->r[j];

H->r[j]=rm;

s=j;

}

H->r[s]=rc;

return;

}

(1)该程序采用什么算法?

(2分)

(2)设传递给函数voidHeapAdjust(SqList*H,ints,intm)的参数如下:

H->Length:

8

H->r:

{15,18,16,32,14,45,78,30,43}

s=1

m=8

请问程序函数执行后H->r的值。

(共5分)

(3)该程序的时间复杂度是多少,写出求解过程。

(共8分)

四、算法描述题(共20分)。

1、已知某仓库有若干件商品,每件商品的重量为Wi,价值为Vi。

某货车能装载的最大重量为W,请将仓库中的部分商品装载到货车中,使其总价值最大。

要求每件商品只能装载1件,且所有货物的总重量不能超过货车的总装载量。

(1)用文字描述采用动态规划算法求解上述问题的步骤。

(6分)

(2)用文字描述采用回溯法求解上述问题的步骤。

(6分)

(3)若仓库中有8件商品,货车能装载的最大重量为5000公斤,每件商品的重量及价值如下表所示,请用图的形式描述采用分支限界法求解该问题时堆的变化过程。

(共8分)

商品编号

1

2

3

4

5

6

7

8

商品重量(公斤)

1000

800

1500

4000

600

400

2000

3200

商品价值(元)

2000

1600

3200

2800

1800

800

3200

4000

五、算法设计及实现(共20分)

1、设某校最多有200门可选课程,而每个学生每学期最多可以选2门课程。

在期末考试时,每天考试可安排在上午1次,下午1次,请编写程序求所有学生考试完所选课程需要安排的最少的考试次数。

(共20分)

输入:

输入的第一行包含两个整数n和m,n表示可选课程的数量,m表示学生的人数。

下面的m行,每行有两个整数,分别表示每个学生所选的两门课程的编号。

比如:

45

12

23

34

14

24

输出:

输出1行,即所有学生考试完所选课程所需要的最少考试次数。

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

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1