2015年算法分析与设计期末考试试卷B卷

合集下载

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

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

算法设计与分析试卷B 与解答一.填空题:(每题4分,共20分)1. 算法的特性有 _0至多个输入, 至少一个输出, 指令无歧义性,指令条数有限且每条指令执行时间有限 .2.直接或间接地调用自身的算法称为 递归 算法。

用函数自身给出定义的函数称为 递归 函数。

3.在回溯法中,为了避免无效的搜索,通常采用两种剪枝策略,分别为和 。

(约束剪枝,限界剪枝)4. 算法的时间复杂性T (n ) 是指算法其中n 是问题的规模。

5.动态规划算法的两大基本要素分别为 和 。

(最优子结构性质和子问题的重叠性质。

)二.简答题:(每小题5分,共20分)1. 给定2个序列12{,,,}m X x x x =L 和12{,,,}n Y y y y =L ,说明X 和Y 的最长公共子序列问题具有最优子结构性质。

设序列X m ={x 1,x 2,…,x m }和Y n ={y 1,y 2,…,y n }的最长公共子序列为Z k ={z 1,z 2,…,z k} ,则 (1)若x m =y n ,那么z k =x m =y n ,且Z k-1是X m-1和Y n-1的最长公共子序列。

(2)若x m ≠y n 且z k ≠x m ,那么Z k 是X m-1和Y n的最长公共子序列。

(3)若x m ≠y n 且z k ≠y n ,那么Z k 是X m 和Y n-1的最长公共子序列。

由此可见,2个序列的最长公共子序列包含了这2个序列的前缀的最长公共子序列。

因此,最长公共子序列问题具有最优子结构性质。

2. 简述常见的两种分支限界法。

(1)队列式(FIFO)分支限界法:按照队列先进先出(FIFO )原则选取下一个节点为扩展节点。

(2)优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

3. 假设以加法和乘法为关键操作,估算下述n 次多项式求值函数的时间复杂度(取T 为整型)template<class T>T PolyEval(T coeff[], int n, const T& x){ // 计算 n 次多项式的值, coeff[0:n] 为多项式的系数T y=1, value=coeff[0];for(i=1;i<=n;i++) {y*=x;value+=y*coeff[i];}return value;}解答:T PolyEval(T coeff[], int n, const T& x){ // 计算n 次多项式的值,coeff[0:n]为多项式的系数T y=1, value=coeff[0];for(i=1;i<=n;i++) //n 循环{ // 累加下一项y*=x; //一次乘法value+=y*coeff[i]; //一次加法和一次乘法}return value;} // 3n 次基本操作4.动态规划算法的基本思想是什么?它和分治法有什么区别和联系?答:动态规划算法的基本思想为:该方法的思路也是将待求解的大问题分成规模较小的子问题,但所得的各子问题之间有重复子问题,为了避免子问题的重复计算,可依自底向上的方式计算最优值,并根据子问题的最优值合并得到更大问题的最优值,进而可构造出所求问题的最优解。

2015年算法分析与设计期末考试试卷B卷

2015年算法分析与设计期末考试试卷B卷

西南交通大学2015 — 2016学年第(一)学期考试试卷课程代码 3244152课程名称 算法分析与设计考试时间 120分钟阅卷教师签字: __________________________________填空题(每空1分,共15分)1、 程序是 (1)用某种程序设计语言的具体实现。

2、 矩阵连乘问题的算法可由(2)设计实现。

3、 从分治法的一般设计模式可以看出,用它设计出的程序一般是(3)4、 大整数乘积算法是用 (4) 来设计的。

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

也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的(6) o6、 回溯法是一种既带有(7)又带有 (8)的搜索算法。

7、 平衡二叉树对于查找算法而言是一种变治策略,属于变治思想中的 (9)类型8、 在忽略常数因子的情况下,0、门和0三个符号中,(10)提供了算法运行时间的一个上界。

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

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

11、 算法就是一组有穷(13),它们规定了解决某一特定类型问题的(14) o12、 变治思想有三种主要的类型:实例化简,改变表现,(15) o、___________________________________________________________________________________ L线订装封密线订装封密、__________________ 二 线订装封密级班选择题(每题2分,共20 分)1、二分搜索算法是利用()实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法2、衡量一个算法好坏的标准是()。

A、运行速度快B、占用空间少C、时间复杂度低D、代码短3、能采用贪心算法求最优解的问题,一般具有的重要性质为:()A.最优子结构性质与贪心选择性质 B •重叠子问题性质与贪心选择性质C •最优子结构性质与重叠子问题性质 D.预排序与递归调用4、常见的两种分支限界法为()A、广度优先分支限界法与深度优先分支限界法;B、队列式(FIFO )分支限界法与堆栈式分支限界法;C 、排列树法与子集树法;D、队列式(FIFO )分支限界法与优先队列式分支限界法;5、实现循环赛日程表利用的算法是()A、分治策略B、动态规划法C、贪心法D、回溯法6、回溯法的效率不依赖于下列哪些因素()A. 满足显约束的值的个数B. 计算约束函数的时间C. 计算限界函数的时间D. 确定解空间的时间7、A、子问题必须是一样的C、子问题的解可以合并8、实现合并排序利用的算法是(A、分治策略B、动态规划法B、子问题不能够重复D、原问题和子问题使用相同的方法解)。

《算法分析与设计》期末试题及参考答案

《算法分析与设计》期末试题及参考答案

《算法分析与设计》期末试题及参考答案一、简要回答下列问题:1.算法重要特性是什么?2.算法分析的目的是什么?3.算法的时间复杂性与问题的什么因素相关?4.算法的渐进时间复杂性的含义?5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?6.简述二分检索(折半查找)算法的基本过程。

7.背包问题的目标函数和贪心算法最优化量度相同吗?8.采用回溯法求解的问题,其解如何表示?有什么规定?9.回溯法的搜索特点是什么?10.n皇后问题回溯算法的判别函数place的基本流程是什么?11.为什么用分治法设计的算法一般有递归调用?12.为什么要分析最坏情况下的算法时间复杂性?13.简述渐进时间复杂性上界的定义。

14.二分检索算法最多的比较次数?15.快速排序算法最坏情况下需要多少次比较运算?16.贪心算法的基本思想?17.回溯法的解(x1,x2,……x n)的隐约束一般指什么?18.阐述归并排序的分治思路。

19.快速排序的基本思想是什么。

20.什么是直接递归和间接递归?消除递归一般要用到什么数据结构?21.什么是哈密顿环问题?22.用回溯法求解哈密顿环,如何定义判定函数?23.请写出prim算法的基本思想。

二、复杂性分析1、MERGESORT(low,high)if low<high;then mid←(low,high)/2;MERGESORT(low,mid);MERGESORT(mid+1,high);MERGE(low,mid,high);endifend MERGESORT2、procedure S1(P,W,M,X,n)i←1; a←0while i≤ n doif W(i)>M then return endifa←a+ii←i+1 ;repeatend3.procedure PARTITION(m,p)Integer m,p,i;global A(m:p-1)v←A(m);i←mlooploop i←i+1 until A(i) ≥v repeatloop p←p-1 until A(p) ≤v repeatif i<pthen call INTERCHANGE(A(i),A(p))else exitendifrepeatA(m) ←A(p);A(p) ←vEnd PARTITION4.procedure F1(n)if n<2 then return(1)else return(F2(2,n,1,1))endifend F1procedure F2(i,n,x,y)if i≤nthen call F2(i+1,n,y,x+y)endifreturn(y)end F25.procedure MAX(A,n,j)xmax←A(1);j←1for i←2 to n doif A(i)>xmax then xmax←A(i); j←i;endif repeatend MAX6.procedure BINSRCH(A,n,x,j)integer low,high,mid,j,n;low←1;high←nwhile low≤high domid←|_(low+high)/2_|case:x<A(mid):high←mid-1:x>A(mid):low←mid+1:else:j ←mid; returnendcase repeat j ←0 end BINSRCH三、算法理解1、写出多段图最短路经动态规划算法求解下列实例的过程,并求出最优值。

大学算法设计与分析课期末试题

大学算法设计与分析课期末试题

一、填空题(选做5道,10分)1. 用矩阵幂的方法求斐波那契数,其运行时间为().2. 对于一个可以用动态规划法求解的问题,要求问题既要满足()的特性,又要具有大量的( ).3. 对于一个可以用贪心法求解的问题,不仅要求问题满足()的特性,还应证明其贪心策略的( ).4. 设有n 个栈操作(PUSH 、POP 、MULTIPOP )的序列,作用于初始为空的栈S .不区分三种操作,则每个操作的最坏运行时间为(),平摊运行时间为(). 5. 三种平摊分析的方法分别为()、()、().6. 四后问题的搜索空间为()树;0-1背包问题的搜索空间为()树;巡回售货员问题的搜索空间为()树.7. ()法的求解目标是找出解空间树中满足约束条件的所有解,而()法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解. 8. 回溯法一般以()优先的方式搜索解空间树,而分支限界法则一般以()优先或以最小耗费优先的方式搜索解空间树. 二、单项选择题 (10分)1. 下列关于排序算法的叙述,不正确的是?()A) 堆排序的最差情形运行时间为Θ(n lg n )B) 快速排序平均情形运行时间为Θ(n lg n ) C) 任何排序算法的最差情形运行时间都不可能比Ω(n lg n )更小D) 插入排序在最好情形下的运行时间为Θ(n )2. 对于课堂讲解的线性时间内找第i 小的元素的算法,()下列叙述中不正确的是?A) 算法第一步中可以按每五个元素一组找中位数;B) 算法第一步中可以按每七个元素一组找中位数;B) 算法第一步中不能按每三个元素一组找中位数;D) 如果要求的n 个元素的中位数,则中位数一定是第一步中找到的中位数中的某一个.3. 主方法可以求解满足形如下式的递推方程,()则下列关于方程中的约束中不准确的是?A) 对于系数a ,装订线内不要必须满足a≥ 1B) 对于系数b,必须满足b > 1C) 若对于常数ε>0,f(n)=O(n log b a-ε),则T(n)=Θ(n log b a)D) 若f(n)=O(n log b a),则T(n)=Θ(n log b a log n)4.下列哪些问题不能用贪心法求解?()A) 霍夫曼编码问题B) 单源最短路径问题C) 0-1背包问题D) 最小生成树问题可合并堆上可以不包含下列哪个操作?()A) DECREASE-KEY(H, x, k) B) UNION(H1, H2)C) INSERT(H, x) D) EXTRACT-MIN(H)5.不同堆上插入操作最差情形下的开销或平摊开销,()对二叉堆、二项堆和斐波那契堆,下列选项中描述错误的是?A) 二叉堆为Θ(lg n) B) 二项堆为O(lg n)C) 斐波那契堆为Θ(1)D) 三种堆的开销都是Θ(lg n)6.关于网络流的割,下列选项中错误的是?()割(S,T)是流网络G=(V,E)的一个划分,其中s∈S, t∈T.如果f 是G上的流,那么流经割的净流量为f(S,T),割(S,T)上的容量定义为c(S,T) .A) | f| ≤ c(S, T) B) f(S, T) = |f|C) f(s, V-s) = | f | D) f(S-s, V) = | f |7.下列随机算法一定有解但解不一定正确的是?()A) SherwoodB) LasVegas C) MonteCarloD) 三者都不是8.在快速排序算法中引入随机过程的主要目的是什么?()A) 改善确定性算法的平均运行时间B) 保证算法总能在O(n lg n)时间内结束C) 避免了算法最坏情况下的发生D) 改善了确定性算法最坏情形下的平均运行时间9.用Monte Carlo方法估计四后问题回溯算法的效率.()五次实验结果分别为<1,4,2>、<2,4,1,3>、<4,2>、<3,1,4,2>、<1,3>,则解空间中的结点数估计为?A) 16 B) 16.2 C) 17 D) 16.5三、社会名流(20分) Array在n个人中,一个被所有人知道但却不知道别人的人,被定义为社会名流.现在的问题是如果存在,试找出该社会名流.你可以使用的唯一方式是询问:“请问你知道那个人吗?”请给出提问次数为O(n)的算法,写出伪代码,分析算法的正确性,并给出算法运行时间的精确分析(即O(n)中隐藏的系数).(提示:当你问A是否认识B时,如果A认识B,则A不是社会名流;如果A不认识B,则B不是社会名流)四、地板覆盖(20分)用2*1的地板块覆盖3*n 的地面有多少种方案?如下图是一个覆盖的例子,函数fn 可用于求解这个问题,请说明fn 算法的正确性,并说明算法运行时间的上界和下界.int fn(int n) { if (n % 2 == 1) return 0。

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

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

大学期末考试试卷B 卷(算法设计与分析)一、选择题(30分,每题2分)1、下面的算法段针对不同的自然数n 作不同的处理,其中函数odd (n) 当n 是奇数时返回true ,否则返回false ,while ( n > 1) if ( odd (n) ) n = 3 * n + 1;else n = n / 2;请问该算法所需计算时间的下界是 。

A .Ω(2n ) B .Ω(nlog n ) C .Ω(n !) D .Ω(logn )2、某体育馆有一羽毛球场出租,现在总共有10位客户申请租用此羽毛球场,每个客户所租用的时间单元如下同一时刻,该羽毛球场只能租借给一位客户,请问在这10位客户里面,体育馆最多能满足 位客户的需求。

P104 A .3 B .4 C .5 D .63、当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时,可以使用 来消除或减少问题的好坏实例间的这种差别。

A .数值概率算法 B .舍伍德算法 C .拉斯维加斯算法 D .蒙特卡罗算法4、将一个正整数n 表示成一系列正整数之和, n = n 1 + n 2 + … +n k (其中,n 1≥n 2≥ … ≥n k ≥1,k ≥1)正整数n 的一个这种表示称为正整数n 的一个划分。

正整数n 的不同的划分个数总和称为正整数n 的划分数,记作p (n );另外,在正整数n 的所有不同划分中,将最大加数n1不大于m 的划分个数记作q (n ,m )。

则当n=10时,p (n )= 。

A .q (8,8) B .1 + q (9,9) P12 C .2 + q (10,8) D .A ,B ,C 都正确5、对于含有n 个元素的子集树问题,最坏情况下其解空间的叶结点数目为 。

A .n!B .2nC .2n+1-1D .∑=ni i n 1!/! P1406、在棋盘覆盖问题中,对于2k ×2k 的特殊棋盘(有一个特殊方块),所需的L 型骨牌的个数是 A 。

算法期末考试题及答案

算法期末考试题及答案

算法期末考试题及答案一、选择题(每题2分,共20分)1. 以下哪个算法不是排序算法?A. 快速排序B. 归并排序C. 深度优先搜索D. 堆排序答案:C2. 在二叉树的遍历算法中,中序遍历的顺序是:A. 先序B. 后序C. 中序D. 层序答案:C3. 动态规划与分治法算法的主要区别在于:A. 问题分解的方式B. 问题解决的顺序C. 存储中间结果的方式D. 问题规模的大小答案:C4. 哈希表的冲突解决方法不包括:A. 开放寻址法B. 链地址法C. 线性探测法D. 排序答案:D5. 以下哪个是图的遍历算法?A. 归并排序B. 深度优先搜索C. 快速排序D. 堆排序答案:B6. 贪心算法的特点是:A. 每一步都选择最优解B. 每一步都选择局部最优解C. 每一步都选择最差解D. 每一步都随机选择解答案:B7. 在算法分析中,时间复杂度O(1)表示:A. 常数时间B. 线性时间C. 对数时间D. 多项式时间答案:A8. 以下哪个是排序算法的时间复杂度为O(n^2)?A. 快速排序B. 归并排序C. 冒泡排序D. 堆排序答案:C9. 递归算法的基本原理是:A. 重复执行B. 分而治之C. 循环调用D. 迭代求解答案:B10. 以下哪个是算法的时间复杂度为O(log n)的典型例子?A. 二分查找B. 线性查找C. 冒泡排序D. 快速排序答案:A二、简答题(每题10分,共20分)1. 简述快速排序算法的基本思想及其时间复杂度。

答案:快速排序是一种分治法的排序算法。

其基本思想是选择一个元素作为“基准”(pivot),然后将数组分为两部分,一部分包含所有小于基准的元素,另一部分包含所有大于基准的元素。

这个过程称为分区(partitioning)。

之后,递归地对这两部分进行快速排序。

快速排序的平均时间复杂度为O(n log n),但在最坏情况下(例如数组已经排序或所有元素相等)时间复杂度为O(n^2)。

2. 解释什么是动态规划,并给出一个动态规划问题的例子。

《算法设计与分析》考试题目及答案(DOC)

《算法设计与分析》考试题目及答案(DOC)

Typew cleft = c - cw; // 剩余容量
Typep b = cp;
// 结点的上界
// 以物品单位重量价值递减序装入物品
while (i <= n && w[i] <= cleft) {
cleft -= w[i];
b += p[i];
i++;
} // 装满背包
if (i <= n) (b += p[i]/w[i] * cleft);
cg(n) }; B. O(g(n)) = { f(n) | 存在正常数 c 和 n0 使得对所有 n n0 有:0 cg(n)
f(n) };
C. (g(n)) = { f(n) | 对于任何正常数 c>0,存在正数和 n0 >0 使得对所有 n n0 有:0 f(n)<cg(n) };
f(n)个单位时间。用 T(n)表示该分治法解规模为|P|=n 的问题所需的计算时
间,则有:T (n)

kT (n
O(1) / m)
f
(n)
n 1 n 1
通过迭代法求得
T(n)的显式表达式为:T (n)

nlogm k

logm n1
C.最优子结构性质与重叠子问题性质 D. 预排序与递归调用
7. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。 A. 广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先
8. 分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间 树。
A. 广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先

(完整版)算法设计与分析考试题及答案,推荐文档

(完整版)算法设计与分析考试题及答案,推荐文档
法好坏的标准是______________________。 3.某一问题可用动态规划算法求解的显著特征是
____________________________________。 4.若序列 X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列
X 和 Y 的一个最长公共子序列_____________________________。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至

之分。
5、 f(n)= 6×2n+n2,f(n)的渐进性态 f(n)= O(
)
6、 贪心算法总是做出在当前看来
的选择。也就是说贪心算法并不从整体最优考
虑,它所做出的选择只是在某种意义上的

7、 许多可以用贪心算法求解的问题一般具有 2 个重要的性质:
性质和
性质。
二、简答题(本题 25 分,每小题 5 分)
五、算法理解题(本题 5 分) 设有 n=2k 个运动员要进行循环赛,
现设计一个满足以下要求的比赛日程表:
①每个选手必须与其他 n-1 名选手比赛各一次; ②每个选手一天至多只能赛一次;
③循环赛要在最短时间内完成。
我去(人1)如也果 就n=2k有,循人环赛!最少为需要U进R行扼几天腕; 入站内信不存在向你偶同意调剖沙 (2)当 n=23=8 时,请画出循环赛日程表。
六、算法设计题(本题 15 分) 分别用贪心算法、动态规划法、回溯法设计 0-1 背包问题。要求:说明所使用的算法
策略;写出算法实现的主要步骤;分析算法的时间。 七、算法设计题(本题 10 分)
建议收藏下载本文,以便随时学习! 通过键盘输入一个高精度的正整数 n(n 的有效位数≤240),去掉其中任意 s 个数字后, 剩下的数字按原左右次序将组成一个新的正整数。编程对给定的 n 和 s,寻找一种方案, 使得剩下的数字组成的新数最小。 【样例输入】 178543 S=4 【样例输出】 13

《算法分析与设计》期末考试复习题-学生版

《算法分析与设计》期末考试复习题-学生版

《算法分析与设计》期末复习题一、选择题1。

应用Johnson 法则的流水作业调度采用的算法是(D )A. 贪心算法 B 。

分支限界法 C.分治法 D 。

动态规划算法2。

Hanoi 塔问题如下图所示。

现要求将塔座A 上的的所有圆盘移到塔座B 上,并仍按同样顺序叠置.移动圆盘时遵守Hanoi 塔问题的移动规则。

由此设计出解Hanoi 塔问题的递归算法正确的为:(B )Hanoi 塔A. void hanoi(int n, int A, int C, int B) { if (n > 0) {hanoi(n-1,A,C, B); move(n,a,b);hanoi(n-1, C, B, A); } B. void hanoi(int n, int A, int B, int C) {if (n > 0) {hanoi(n-1, A, C, B); move(n,a,b);hanoi(n-1, C, B, A); }C. void hanoi(int n, int C, int B, int A) {if (n > 0) {hanoi(n-1, A, C, B); move(n,a,b);hanoi(n-1, C, B, A); }3。

动态规划算法的基本要素为(C)A。

最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用4。

算法分析中,记号O表示(B),记号Ω表示(A),记号Θ表示(D)。

A.渐进下界B。

渐进上界C.非紧上界D.紧渐进界E。

非紧下界5. 以下关于渐进记号的性质是正确的有:(A)A。

f(n)(g(n)),g(n)(h(n))f(n)(h(n))=Θ=Θ⇒=ΘB。

f(n)O(g(n)),g(n)O(h(n))h(n)O(f(n))==⇒=C. O(f(n))+O(g(n))= O(min{f(n),g(n)})D. f(n)O(g(n))g(n)O(f(n))=⇔=6。

《算法分析与设计》期末考试复习题-学生版

《算法分析与设计》期末考试复习题-学生版

《算法分析与设计》期末复习题一、选择题1.应用Johnson法则的流水作业调度采用的算法是(D)A. 贪心算法B. 分支限界法C.分治法D. 动态规划算法2.Hanoi塔问题如下图所示。

现要求将塔座A上的的所有圆盘移到塔座B上,并仍按同样顺序叠置。

移动圆盘时遵守Hanoi塔问题的移动规则。

由此设计出解Hanoi塔问题的递归算法正确的为:(B)Hanoi塔3. 动态规划算法的基本要素为(C)A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用4. 算法分析中,记号O表示(B),记号Ω表示(A),记号Θ表示(D)。

A.渐进下界B.渐进上界C.非紧上界D.紧渐进界E.非紧下界5. 以下关于渐进记号的性质是正确的有:(A)A.f(n)(g(n)),g(n)(h(n))f(n)(h(n))=Θ=Θ⇒=ΘB. f(n)O(g(n)),g(n)O(h(n))h(n)O(f(n))==⇒=C. O(f(n))+O(g(n)) = O(min{f(n),g(n)})D. f(n)O(g(n))g(n)O(f(n))=⇔=6.能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用7. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。

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

A.广度优先B. 活结点优先 C.扩展结点优先 D. 深度优先9. 程序块(A)是回溯法中遍历排列树的算法框架程序。

A.B.C.D.10. 回溯法的效率不依赖于以下哪一个因素?(C )A.产生x[k]的时间;B.满足显约束的x[k]值的个数;C.问题的解空间的形式;D.计算上界函数bound的时间;E.满足约束函数和上界函数约束的所有x[k]的个数。

2015年算法分析与设计期末考试试卷B卷(精品文档)

2015年算法分析与设计期末考试试卷B卷(精品文档)

8、 实现合并排序利用的算法是( )。
A、分治策略 B、动态规划法 C、贪心法 D、回溯法
9、 背包问题的贪心算法所需的计算时间为( )
A、O(n2n) B、O(nlogn) C、O(2n)
D、O(n)
10、 广度优先是( )的一搜索方式。
A、分支界限法 B、动态规划法 C、贪心法 D、回溯法
三、 算法及程序分析(共 25 分)。
考虑,它所做出的选择只是在某种意义上的 (6) 。 6、 回溯法是一种既带有 (7) 又带有 (8) 的搜索算法。 7、 平衡二叉树对于查找算法而言是一种变治策略,属于变治思想中的 (9) 类型。
学号
密封装订线
8、 在忽略常数因子的情况下,O、 和 三个符号中, (10) 提供了算法运行时 间的一个上界。
二、 选择题(每题 2 分,共 20 分)
1、 二分搜索算法是利用( )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法
2、 衡量一个算法好坏的标准是( )。 A、运行速度快 B、占用空间少 C、 时间复杂度低 D、代码短
3、 能采用贪心算法求最优解的问题,一般具有的重要性质为:( ) A. 最优子结构性质与贪心选择性质 B.重叠子问题性质与贪心选择性质 C.最优子结构性质与重叠子问题性质 D. 预排序与递归调用
[ ] 1 2 3 4 5
10 6 5 7 20 30 15 12 13 14 11 25 23 16 15 20 14 18 19 30 (2)上述程序的时间复杂度是多少?(共 3 分)
2. 阅读下面的程序,按要求回答问题。(共 15 分)
typedef struct SqList{ int *r; int Length;
西南交通大学 2015-2016 学年第(一)学期考试试卷

2015年算法分析与设计期末考试试卷A卷

2015年算法分析与设计期末考试试卷A卷

西南交通大学2015-2016学年第(一)学期考试试卷课程代码 3244152 课程名称 算法分析与设计 考试时间 120 分钟阅卷教师签字:一、 填空题(每空1分,共15分)1. 回溯法的求解目标是找出解空间树中满足约束条件的所有解,而 (1) 法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。

2. 分治算法的基本步骤包括:分解、解决和 (2) 。

3. 选择排序、插入排序和归并排序算法中, (3) 算法是分治算法。

4. 计算一个算法时间复杂度通常可以计算的 (4) 、基本操作的频度或计算步。

5. 贪心算法的基本要素是 (5) 性质和 (6) 性质 。

6. 以广度优先或以最小耗费方式搜索问题解的算法称为 (7) 。

7. 快速排序算法的性能取决于 (8) 。

8. 常见的减治策略分为三类: (9) , (10) ,减可变规模. 9. 堆的构建过程对于堆排序而言是一种 (11) 策略,属于变治思想中的实例化简类型。

10. 分支限界法主要有 (12) 分支限界法和 (13) 分支限界法. 11. 快速排序算法是基于 (14) 的一种排序算法。

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

二、 选择题(每题2分,共20分)1、二分搜索算法是利用( )实现的算法.A 、分治策略B 、动态规划法C 、贪心法D 、回溯法 2。

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

班 级 学 号 姓 名密封装订线 密封装订线 密封装订线A、运行速度快B、占用空间少C、时间复杂度低D、代码短3. 以下关于渐进记号的性质是正确的有:( )A。

f(n)=Θ(g(n)),g(n)=Θ(h(n))⟹f(n)=Θ(h(n))B. f(n)=O(g(n)),g(n)=O(h(n))⟹ℎ(n)=O(f(n))C. O(f(n))+O(g(n))=O(min{f(n),g(n)})D. f(n)=O(g(n))⟺g(n)=O(f(n))4. 下面不是分支界限法搜索方式的是().A、广度优先B、最小耗费优先C、最大效益优先D、深度优先5。

2015年算法分析与设计期末考试试卷A卷

2015年算法分析与设计期末考试试卷A卷

西南交通大学2015-2016学年第(一)学期考试试卷课程代码 3244152 课程名称 算法分析与设计 考试时间 120 分钟阅卷教师签字:一、 填空题(每空1分,共15分)1. 回溯法的求解目标是找出解空间树中满足约束条件的所有解,而 (1) 法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。

2. 分治算法的基本步骤包括:分解、解决和 (2) 。

3. 选择排序、插入排序和归并排序算法中, (3) 算法是分治算法。

4. 计算一个算法时间复杂度通常可以计算的 (4) 、基本操作的频度或计算步。

5. 贪心算法的基本要素是 (5) 性质和 (6) 性质 。

6. 以广度优先或以最小耗费方式搜索问题解的算法称为 (7) 。

7. 快速排序算法的性能取决于 (8) 。

8. 常见的减治策略分为三类: (9) , (10) ,减可变规模. 9. 堆的构建过程对于堆排序而言是一种 (11) 策略,属于变治思想中的实例化简类型。

10. 分支限界法主要有 (12) 分支限界法和 (13) 分支限界法. 11. 快速排序算法是基于 (14) 的一种排序算法。

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

二、 选择题(每题2分,共20分)1、二分搜索算法是利用( )实现的算法.A 、分治策略B 、动态规划法C 、贪心法D 、回溯法 2。

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

班 级 学 号 姓 名密封装订线 密封装订线 密封装订线A、运行速度快B、占用空间少C、时间复杂度低D、代码短3. 以下关于渐进记号的性质是正确的有:( )A。

f(n)=Θ(g(n)),g(n)=Θ(h(n))⟹f(n)=Θ(h(n))B. f(n)=O(g(n)),g(n)=O(h(n))⟹ℎ(n)=O(f(n))C. O(f(n))+O(g(n))=O(min{f(n),g(n)})D. f(n)=O(g(n))⟺g(n)=O(f(n))4. 下面不是分支界限法搜索方式的是().A、广度优先B、最小耗费优先C、最大效益优先D、深度优先5。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)用文字描述采用动态规划算法求解上述问题的步骤。(6分)
(2)用文字描述采用回溯法求解上述问题的步骤。(6分)
(3)若仓库中有8件商品,货车能装载的最大重量为5000公斤,每件商品的重量及价值如下表所示,请用图的形式描述采用分支限界法求解该问题时堆的变化过程。(共8分)
商品编号
1
2
3
4
5
6
7
8
商品重量(公斤)
1、二分搜索算法是利用( )实现的算法。
A、分治策略 B、动态规划法 C、贪心法 D、回溯法
2、衡量一个算法好坏的标准是( )。
A、运行速度快 B、占用空间少 C、 时间复杂度低 D、代码短
3、能采用贪心算法求最优解的问题,一般具有的重要性质为:()
A. 最优子结构性质与贪心选择性质 B.重叠子问题性质与贪心选择性质
输入:输入的第一行包含两个整数n和m,n表示可选课程的数量,m表示学生的人数。下面的m行,每行有两个整数,分别表示每个学生所选的两门课程的编号。比如:
4 5
1 2
2 3
3 4
1 4
2 4
输出:输出1行,即所有学生考试完所选课程所需要的最少考试次数。
for(i=0;i<R;i++)
for(j=0;j<C;j++)
scanf("%d",&map[i][j]);
max = 0;
for(i=0;i<R;i++){
memset(vis[i],-1,sizeof(vis[i]));
for(j=0;j<C;j++){
ans = dp(i,j);
if(ans>max) max = ans;
1000
800
1500
4000
600
400
2000
3200
商品价值(元)
2000
1600
3200
2800
1800
800
3200
4000
五、算法设计及实现(共20分)
1、设某校最多有200门可选课程,而每个学生每学期最多可以选2门课程。在期末考试时,每天考试可安排在上午1次,下午1次,请编写程序求所有学生考试完所选课程需要安排的最少的考试次数。(共20分)
A、分治策略B、动态规划法
C、贪心法D、回溯法
6、回溯法的效率不依赖于下列哪些因素( )
A.满足显约束的值的个数B. 计算约束函数的时间
C. 计算限界函数的时间D. 确定解空间的时间
7、使用分治法求解不需要满足的条件是( )。
A、 子问题必须是一样的B、 子问题不能够重复
C、 子问题的解可以合并D、 原问题和子问题使用相同的方法解
typedef struct SqList{
int*r;
int Length;
}SqList;
void HeapSort(SqList *H)
{
int i;
intrc;
for(i=H->Length/2;i>0;--i)
HeapAdjust(H,i,H->Length);
for(i=H->Length;i>1;--i){
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件,且所有货物的总重量不能超过货车的总装载量。
if(max<dp(i,j+1))
max = dp(i,j+1);
returnvis[i][j] = max+1;
}
(1)该程序采用什么算法?(2分)
(2)设R=5,C=5,map的值如下所示时程序执行结束之后max的值是多少?(共5分)
(2)上述程序的时间复杂度是多少?(共3分)
2.阅读下面的程序,按要求回答问题。(共15分)
4、大整数乘积算法是用(4)来设计的。
5、贪心算法总是做出在当前看来(5)的选择。也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的(6)。
6、回溯法是一种既带有(7)又带有(8)的搜索算法。
7、平衡二叉树对于查找算法而言是一种变治策略,属于变治思想中的(9)类型。
8、在忽略常数因子的情况下,O、 和 三个符号中,(10)提供了算法运行时间的一个上界。
C.最优子结构性质与重叠子问题性质
4、D. 预排序与递归调用
4、常见的两种分支限界法为()
A、广度优先分支限界法与深度优先分支限界法;
B、队列式(FIFO)分支限界法与堆栈式分支限界法;
C、排列树法与子集树法;
D、队列式(FIFO)分支限界法与优先队列式分支限界法;
5、实现循环赛日程表利用的算法是( )。
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<stdio.h>
#include<string.h>
intvis[101][101];
intmap[101][101];
intR,C;
intdp(inti,intj);
intmain()
{
inti,j,ans,max;
scanf("%d%d",&R,&C);
if(i+1<R)
if(map[i+1][j]<map[i][j])
if(max<dp(i+1,j))
max = dp(i+1,j);
if(j-1>=0)
if(map[i][j-1]<map[i][j])
if(max<dp(i,j-1))
max = dp(i,j-1);
if(j+1<C)
if(map[i][j+1]<map[i][j])
if(j<m && H->r[j]<H->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)设传递给函数void HeapAdjust(SqList *H,int s, int m)的参数如下:
9、算法的“确定性”指的是组成算法的每条(11)是清晰的,无歧义的。
10、问题的(12)是该问题可用动态规划算法或贪心算法求解的关键特征。
11、算法就是一组有穷(13),它们规定了解决某一特定类型问题的(14)。
12、变治思想有三种主要的类型:实例化简,改变表现,(15)。
二、选择题(每题2分,共20分)
rc=H->r[1];
H->r[1]=H->r[i];
H->r[i]=rc;
HeapAdjust(H,1,i-1);
}
return;
}
void HeapAdjust(SqList *H,int s, int m)
{intrc,rm;int j;rc=H->r[s];
for(j=2*s;j<=m;j*=2){
}
}
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]<map[i][j])
if(max<dp(i-1,j))
max = dp(i-1,j);
西南交通大学2015-2016学年第(一)学期考试试卷
课程代码3244152课程名称算法分析与设计考试时间120分钟
题号





总成绩
得分
·
阅卷教师签字:
一、填空题(每空1分,共15分)
1、程序是(1)用某种程序设计语言的具体实现。
2、矩阵连乘问题的算法可由(2)设计实现。
3、从分治法的一般设计模式可以看出,用它设计出的程序一般是(3)。
相关文档
最新文档