算法设计和分析试题与答案解析.docx

算法设计和分析试题与答案解析.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

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

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

考试类型:开卷 试卷类型:C卷 考试时: 120分钟

题号

题号

得分

总分

统分人

阅卷人

复查人

一、填空题(每小题3分,共计30分)

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

f?n??nlogn g?n??logn

?1, n?1

算法的时间复杂性为f(n)?? ,则算法的时间复杂性的阶

?8f(3n/7)?n, n?2

* 。

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

算法是 。

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

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

大Ω符号用来描述增长的下限,这个下限的阶越 ,结果就越有价值。。

是问题能用动态规划算法求解的前提。

贪心选择性质是指

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

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

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

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

M1

10

2

8

12

6

9

4

14

M2

5

7

1

15

16

3

11

13

作业

1

2

3

4

5

6

7

8

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

答:

最优调方案为

所需的最少时间为:

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

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

v21

v2

1

v5

2

v8

6

2

6

3

3

v1

3

v3

6

10

1

4

v9

4

2

v7

2

v4

10

v6

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

设R={r,r,...,r}是要进排的 n个元素,其中元素r,r,...,r可能相同,

1 2 n 1 2 n

试设计一个算法,出 R的所有同排,并给出同排的总数。算法如下,填写缺失的语。

templatetypenameTypevoidSwap(Typea,Typeb){

Typet=b;

; //1a=t;

}

templatetypenameType

boolok(TypeR[],intk,inti){if(ik)

for(intt=k;ti;t++)

if( ) //2returnfalse;

returntrue;

}

templatetypenameType

voidPerm(TypeR[],intk,intn,intsum){//n为元素个数,sum记录同排的总数

if(k==n){

; //3for(inti=1;i=n;i++)

cout ; //4coutendl;

}else{

for(inti=k;i=n;i++)if(ok(R,k,i)){

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

Perm( ); //5Swap(R[k],R[i]);

}

}

}

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

设有n个程序{1,2,3...,n}要存放在长为 L的磁带上。程序i存放在磁带上的长

是 Li,1≤i≤n。

是 Li,1≤i≤n。程序存储问题要求确定这n个程序在磁带上的一个存储方案,使

得能够在磁带上存储尽可能多的程序,在保证存储最多程序的前提下还要求磁带的用

达到最大。

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

给出求解使磁带的用达到最大的方案的算法思。 。

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

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

如输入n为178543,s为4,结果为13

⑴简述你的算法思;

⑵给出算法(用C++描述)。注:正整数n存于字符中,:stringn=178543;

n.at(0) //返回字符 n的第1个字符

n.erase(2,3) //删除n中引为 2开始的3个字符

解:

⑴算法思

⑵算法

stringMinNum(s

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档