好文档 - 专业文书写作范文服务资料分享网站

《计算机算法设计与分析》习题及答案

天下 分享 时间: 加入收藏 我要投稿 点赞

间树。

A.广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先 49. 分支限界法在问题的解空间树中,按( A )策略,从根结点出发搜索解空间树。A.广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先

50. 程序块( A )是回溯法中遍历排列树的算法框架程序。 A. void backtrack (int t) { if (t>n) output(x); void backtrack (int t) B. else { if (t>n) output(x); for (int i=t;i<=n;i++) else C. { swap(x[t], x[i]); void backtrack (int t) for (int i=0;i<=1;i++) if (legal(t)) backtrack(t+1); { { x[t]=i; swap(x[t], x[i]); if (t>n) output(x); if (legal(t)) backtrack(t+1); } else } backtrack (int t) D. void } for (int i=0;i<=1;i++) }{ { x[t]=i; if (t>n) output(x); D) 51. 常见的两种分支限界法为( if (legal(t)) backtrack(t-1); else } for (int i=t;i<=n;i++) A. 广度优先分支限界法与深度优先分支限界法; } { swap(x[t], x[i]); if (legal(t)) backtrack(t+1); B. 队列式(FIFO)分支限界法与堆栈式分支限界法; } } C. 排列树法与子集树法; D. 队列式(FIFO)分支限界法与优先队列式分支限界法;

二、填空题

1.算法的复杂性有 时间 复杂性和 空间 复杂性之分。 2、程序是 算法用某种程序设计语言的具体实现。

3、算法的“确定性”指的是组成算法的每条 指令 是清晰的,无歧义的。 4. 矩阵连乘问题的算法可由 动态规划 设计实现。 5、算法是指解决问题的 一种方法 或 一个过程 。

6、从分治法的一般设计模式可以看出,用它设计出的程序一般是 递归算

法 。

7、问题的 最优子结构性质 是该问题可用动态规划算法或贪心算法求解的关键特征。

8、以深度优先方式系统搜索问题解的算法称为 回溯法 。

9、计算一个算法时间复杂度通常可以计算 循环次数 、 基本操作的频率 或计算步。

10、解决0/1背包问题可以使用动态规划、回溯法和分支限界法,其中不需要排序的是 动态规划 ,需要排序的是 回溯法 ,分支限界法 。

11、使用回溯法进行状态空间树裁剪分支时一般有两个标准:约束条件和目标函数的界,N皇后问题和0/1背包问题正好是两种不同的类型,其中同时使用约束条件和目标函数的界进行裁剪的是 0/1背包问题 ,只使用约束条件进行裁剪的是 N皇后问题 。

12、 贪心选择性质 是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。

13、矩阵连乘问题的算法可由 动态规划 设计实现。

14.贪心算法的基本要素是 贪心选择 性质和 最优子结构 性质 。

15. 动态规划算法的基本思想是将待求解问题分解成若干 子问题 ,先求解 子问题 ,然后从这些 子问题 的解得到原问题的解。

16.算法是由若干条指令组成的有穷序列,且要满足输入、 输出 、确定性和 有限性 四条性质。

17、大整数乘积算法是用 分治法 来设计的。

18、以广度优先或以最小耗费方式搜索问题解的算法称为 分支限界法 。 19、 贪心选择性质 是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。

20.快速排序算法是基于 分治策略 的一种排序算法。

21.动态规划算法的两个基本要素是. 最优子结构 性质和 重叠子问题 性质 。

22.回溯法是一种既带有 系统性 又带有 跳跃性 的搜索算法。

23.分支限界法主要有 队列式(FIFO) 分支限界法和 优先队列式 分支限界法。

24.分支限界法是一种既带有 系统性 又带有 跳跃性 的搜索算法。

25.回溯法搜索解空间树时,常用的两种剪枝函数为 约束函数 和 限界函数 。

26.任何可用计算机求解的问题所需的时间都与其 规模 有关。 27.快速排序算法的性能取决于 划分的对称性 。

28.所谓贪心选择性质是指 所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到 。

29.所谓最优子结构性质是指 问题的最优解包含了其子问题的最优解 。 30.回溯法是指 具有限界函数的深度优先生成法 。

31.用回溯法解题的一个显着特征是在搜索过程中动态产生问题的解空间。在任何时刻,算法只保存从根结点到当前扩展结点的路径。如果解空间树中从根结

点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为 O(h(n)) )。

32.回溯法的算法框架按照问题的解空间一般分为 子集树 算法框架与 排列树 算法框架。

33.用回溯法解0/1背包问题时,该问题的解空间结构为 子集树 结构。 34.用回溯法解批处理作业调度问题时,该问题的解空间结构为 排列树 结构。

35.旅行售货员问题的解空间树是 排列树 。

三、算法填空

1.背包问题的贪心算法

void Knapsack(int n,float M,float v[],float w[],float x[]) {n]],价值为v[1..n]的 n个物品,装入容量为M的背包 n]

int i; Sort(n,v,w);

for (i=1;i<=n;i++) x[i]=0; float c=M;

for (i=1;i<=n;i++) {if (w[i]>c) break; x[i]=1; c-=w[i]; }

if (i<=n) x[i]=c/w[i];

}

2.最大子段和: 动态规划算法 int MaxSum(int n, int a[]) {

int sum=0, b=0; 心算法求活动安排问题 template

void GreedySelector(int n, Type s[], Type f[], bool A[]) {

{ A[i]=true;

j=i; }

}

4.快速排序

template

void QuickSort (Type a[], int p, int r) {

A[1]=true; int j=1;

for (int i=2;i<=n;i++) if (s[i]>=f[j])

else A[i]=false;

if (p

《计算机算法设计与分析》习题及答案

间树。A.广度优先B.活结点优先C.扩展结点优先D.深度优先49.分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间树。A.广度优先B.活结点优先C.扩展结点优先D.深度优先50.程序块(A)是回溯法中遍历排列树的算法框架程序。A.voidbacktra
推荐度:
点击下载文档文档为doc格式
03xwv4zm7q6d7jn4l8uv58u602x74s012m9
领取福利

微信扫码领取福利

微信扫码分享