算法设计与分析试卷及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南科技学院二○ 年 学期期末考试

信息与计算科学专业 年级《算法设计与分析》 试题

考试类型:开卷 试卷类型:C 卷 考试时量:120 分钟 一、填空题(每小题3 分,共计30 分)

1. 用O 、Ω和θ表示函数f 与g 之间的关系______________________________。

()()log log f n n n g n n ==

2. 算法的时间复杂性为1,

1()8(3/7),

2

n f n f n n n =⎧=⎨

+≥⎩,则算法的时间复杂性的阶

为__________________________。

3. 快速排序算法的性能取决于______________________________。

4. 算法是_______________________________________________________。

5. 在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是_________________________。

6. 在算法的三种情况下的复杂性中,可操作性最好且最有实际价值的是_____情况下的时间复杂性。

7. 大Ω符号用来描述增长率的下限,这个下限的阶越___________,结果就越有价值。。 8. ____________________________是问题能用动态规划算法求解的前提。

9. 贪心选择性质是指________________________________________________________ ____________________________________________________________。

10. 回溯法在问题的解空间树中,按______________策略,从根结点出发搜索解空间树。

二、简答题(每小题10分,共计30分)

1. 试述回溯法的基本思想及用回溯法解题的步骤。

题 号 一

总分 统分人

得 分 阅卷人

复查人

2. 有8个作业{1,2,…,8}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的

给出一个最优调度方案,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少,并计算所需的最少时间。

答:

所需的最少时间为:_______________________

3. 根据优先队列式分支限界法,求下图中从v1点到v9点的单源最短路径,请画出求得最优解的解空间树。要求中间被舍弃的结点用×标记,获得中间解的结点用单圆圈○

框起(如○v2),最优解用双圆圈◎框起。

v1

v2

v3

v4

v5

v6

v7

v8

v9 6

1

3

2

1

6

2

10

2

3

6

3

2

4

10

4

三、算法填空(每空2分,共计10分)

设R={r1, r2, ..., r n}是要进行排列的n个元素,其中元素r1, r2, ..., r n可能相同,试设计一个算法,列出R的所有不同排列,并给出不同排列的总数。算法如下,填写缺失的语句。

template

void Swap(Type &a,Type &b){

Type t=b;

________________; //1

a=t;

}

template

bool ok(Type R[],int k,int i){

if(i>k)

for(int t=k;t

if( __________________) //2

return false;

return true;

}

template

void Perm(Type R[],int k,int n,int &sum){ //n为元素个数,sum记录不同排列的总数if(k==n){

______________________; //3

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

cout<<___________________; //4

cout<

}else{

for(int i=k;i<=n;i++)

if(ok(R,k,i)){

Swap(R[k],R[i]);

Perm(_________________________); //5

Swap(R[k],R[i]);

}

}

}

四、算法设计(共计15分)

设有n个程序{1, 2, 3..., n}要存放在长度为L的磁带上。程序i存放在磁带上的长度是Li,1≤i≤n。程序存储问题要求确定这n个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序,在保证存储最多程序的前提下还要求磁带的利用率达到最大。

(1)给出求解存储最多程序的算法,并证明算法的正确性;

(2)给出求解使磁带的利用率达到最大的方案的算法思路。。

相关文档
最新文档