《算法分析与设计》期末考试总结复习习题纲(完整版

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

欢迎阅读

《算法分析与设计》期末复习题

一、 选择题

1. 算法必须具备输入、输出和( D )等4个特性。

A .可行性和安全性

B .确定性和易读性

C .有穷性和安全性

D .有穷性和确定性

2. 算法分析中,记号O 表示( B ),记号Ω表示( A )

A.渐进下界

B.渐进上界

C.非紧上界

D.紧渐进界

3. A C

4. ,

用O A C 5. A C 6. A C 7. 在有A C 8. A C 9. A C 10. 下列算法中通常以自底向上的方式求解最优解的是( B )。

A .备忘录法

B .动态规划法

C .贪心法

D .回溯法

11. 下列算法中不能解决0/1背包问题的是( A )。

A .贪心法

B .动态规划

C .回溯法

D .分支限界法

12. 下列哪个问题可以用贪心算法求解( D )。

A .LCS 问题

B .批处理作业问题

C .0-1背包问题

D .哈夫曼编码问题

13. 用回溯法求解最优装载问题时,若待选物品为m 种,则该问题的解空间树的结点个数为

()。

A.m! B.2m+1

C.2m+1-1 D.2m

14.二分搜索算法是利用(?A??)实现的算法。

A.分治策略?? B.动态规划法??

C.贪心法??? D.回溯法

15.下列不是动态规划算法基本步骤的是(?B??)。P44

A.找出最优解的性质? B.构造最优解?

C.算出最优解(应该是最优值)? D.定义最优解

16.下面问题( B )不能使用贪心法解决。

A.单源最短路径问题 B.N皇后问题

C

17.

A.

C.

18.

A

C

19.

A

C

20.

A

C

21.

A

B

D

22.

A.

B

C

D

23.

A.递归地定义最优值

B.分析最优解的性质,并刻画其结构特征

C.根据计算最优值时得到的信息,构造最优解 (可以省去的) D.以自底向上的方式计算出最优值

24.分治法所能解决的问题应具有的关键特征是( C )。P16

A.该问题的规模缩小到一定的程度就可以容易地解决

B.该问题可以分解为若干个规模较小的相同问题

C.利用该问题分解出的子问题的解可以合并为该问题的解

D.该问题所分解出的各个子问题是相互独立的

25.下列关于回溯法的描述不正确的是( D )。P114

A.回溯法也称为试探法

B .回溯法有“通用解题法”之称

C .回溯法是一种能避免不必要搜索的穷举式搜索法

D .用回溯法对解空间作深度优先搜索时只能用递归方法实现

26. 常见的两种分支限界法为( D )。P161

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

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

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

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

二、 填空题

1.

222. 3. 4. 5. 6. 7. 8. 9. 10. 1. 例递归式为: 边界条件 递归方程

递归算法:

int factorial (int n)

{ if (n==0) return 1; 递归出口

return n * factorial (n-1); 递归调用

}

例2:用递归技术求解Hanoi 塔问题,Hanoi 塔的递归算法。P15

其中Hanoi (int n, int a, int c, int b)表示将塔座A 上的n 个盘子移至塔座C ,以塔座B 为辅助。Move(a,c)表示将塔座a 上编号为n 的圆盘移至塔座c 上。

void hanoi (int n, int a, int c, int b)

00)!1(1!>=⎩⎨⎧-=n n n n n

{

if (n > 0)

{

hanoi(n-1, a, b, c);

move(a,c);

hanoi(n-1, b, c, a);

}

}

2.用分治法求解快速排序问题。

快速排序算法 P25 、作业、课件第2章(2)42页-50页

{

}

{

// 将> x的元素交换到右边区域

while (true) {

while (a[++i]

while (a[- -j] >x);

if (i >= j) break;

Swap(a[i], a[j]);

}

a[p] = a[j];

a[j] = x;

return j;

}

3.用贪心算法求解最优装载问题。

最优装载问题 P95 课件第4章(2)第3-8页

template

{

}

4.

例1

{

Typew *w; //物品重量数组

Typep *p; //物品价值数组

Typew cw; //当前重量

Typep cp; //当前价值

Typep bestp; //当前最优价值

};

void Knap::Backtrack(int i)

{ if(i>n) { bestp=cp; return; }

相关文档
最新文档