算法设计分析期末考试试卷
算法设计与分析期末考试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 。
《算法设计与分析》考试题目及答案(DOC)
6. 能采用贪心算法求最优解的问题,一般具有的重要性质为:(A) A. 最优子结构性质与贪心选择性质 B.重叠子问题性质与贪心选择性质
3. 所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最 优的选择,即贪心选择来达到)。
4. 所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。 5. 回溯法是指(具有限界函数的深度优先生成法)。 6. 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。在任 何时刻,算法只保存从根结点到当前扩展结点的路径。如果解空间树 中 从根结点到叶结点的最长路径的长度为 h(n),则回溯法所需的计算空间通 常为(O(h(n)))。 7. 回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与
12. 用回溯法解图} 的 m 着色问题时,使用下面的函数 OK 检查当前扩展结点的
每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn))。
Bool Color::OK(int k) {//
for(int j=1;j<=n;j++) if((a[k][j]= =1)&&(x[j]= =x[k])) return false;
f(n)个单位时间。用 T(n)表示该分治法解规模为|P|=n 的问题所需的计算时
间,则有:T (n)
kT (n
O(1) / m)
f
(n)
n 1 n 1
算法设计与分析期末试卷A卷
算法设计与分析期末试卷A卷A卷一、选择题1.二分搜索算法是利用(A)实现的算法。
A、分治策略2.回溯法解旅行售货员问题时的解空间树是(A)。
A、子集树3.下列算法中通常以自底向上的方式求解最优解的是(B)。
B、动态规划法4.下面不是分支界限法搜索方式的是(D)。
D、深度优先5.采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为(。
B。
)。
B、O(nlogn)6.分支限界法解最大团问题时,活结点表的组织形式是(B)。
B、最大堆7、下面问题(B)不能使用贪心法解决。
B N皇后问题8.下列算法中不能解决0/1背包问题的是(A)A贪心法9.背包问题的贪心算法所需的计算时间为(B)A、O (nlogn)B、O(nlogn)10.背包问题的贪心算法所需的计算时间为(B)。
B、O(nlogn)二、填空题1.算法的复杂性有时间复杂性和空间复杂性之分。
2.算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有穷性四条性质。
其中算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。
3.解决0/1背包问题可以使用动态规划、回溯法和分支限界法,其中不需要排序的是回溯法,需要排序的是动态规划和分支限界法。
4.动态规划算法的两个基本要素是最优子结构性质和重叠子问题性质。
5.回溯法是一种既带有深度优先搜索又带有回溯的搜索算法;分支限界法是一种既带有广度优先搜索又带有回溯的搜索算法。
6.用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。
在任何时刻,算法只保存从根结点到当前扩展结点的路径。
如果解空间树中从根结点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为O(h(n))。
7.用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时O(n)。
Bool Color::OK(int k)for(int j=1;j<=n;j++)if((a[k][j] == 1) && (x[j] == x[k])) {return false;return true;8.用回溯法解布线问题时,求最优解的主要程序段如下。
算法设计与分析期末试题_考试版
1、用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现7、程序调试8、结果整理文档编制2、算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程3、算法的三要素1、操作2、控制结构3、数据结构算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。
不存在二义性。
只有一个入口和一个出口可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
算法设计的质量指标:正确性:算法应满足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解;健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。
一般这两者与问题的规模有关。
经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法迭代法基本思想:迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。
解题步骤:1、确定迭代模型。
根据问题描述,分析得出前一个(或几个)值与其下一个值的迭代关系数学模型。
2、建立迭代关系式。
迭代关系式就是一个直接或间接地不断由旧值递推出新值的表达式,存储新值的变量称为迭代变量3、对迭代过程进行控制。
确定在什么时候结束迭代过程,这是编写迭代程序必须考虑的问题。
不能让迭代过程无休止地重复执行下去。
迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。
对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。
《算法设计与分析》考试题目及答案
《算法分析与设计》期末复习题一、选择题1.应用Johnson法则的流水作业调度采用的算法是(D)A. 贪心算法B. 分支限界法C.分治法D. 动态规划算法2.Hanoi塔问题如下图所示。
现要求将塔座A上的的所有圆盘移到塔座B上,并仍按同样顺序叠置。
移动圆盘时遵守Hanoi塔问题的移动规则。
由此设计出解Hanoi塔问题的递归算法正确的为:(B)Hanoi塔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)策略,从根结点出发搜索解空间树。
广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先8. 分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间树。
A.广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先9. 程序块(A)是回溯法中遍历排列树的算法框架程序。
A.B.C.D.10.x[k]的个数。
11. 常见的两种分支限界法为(D)A. 广度优先分支限界法与深度优先分支限界法;B. 队列式(FIFO)分支限界法与堆栈式分支限界法;C. 排列树法与子集树法;D. 队列式(FIFO)分支限界法与优先队列式分支限界法;12. k带图灵机的空间复杂性S(n)是指(B)A.k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最大方格数。
(完整版)算法设计与分析期末考试卷及答案a
flag=false
_
_
end if
_
__
end for
A[i] A[1]
w =i
return w, A end SPLIT
二.计算题和简答题(每小题
1.用O、、 表示函数f与g之间阶的关系,并分别指出下列函数中阶最低和最高 的函数:
(1)f (n)=100g(n)=100n
(2)f(n)=6n+nlog ng(n)=3n
算法EX1
输入:正整数n,n=2k。输出:⋯
ex1(n)
end EX1过程ex1(n) if n=1 then pro1(n)
else
栏
名姓
级年
_
_系
_院学
pro2(n)
ex1(n/2) end if
return
end ex1
3.用Floyd算法求下图每一对顶点之间的最短路径长度, 计算矩阵D0,D1,D2和D3,其中Dk[i, j]表示从顶点i到顶点j的不经过编号大于
i=find ( (1) )
if i>0 then output i
else output“no solution”
end SEARCH
过程find (low, high)
//求A[low..high]中使得A[i]=i的一个下标并返回,若不存在,
//则返回0。
if (2) then return 0
生专
_
订
马的周游问题:给出一个nxn棋盘,已知一个中国象棋马在
_
_
棋盘上的某个起点位置(x0, y0),求一条访问每个棋盘格点恰好
_
_
一次,最后回到起点的周游路线。 (设马走日字。)
1算法设计与分析课程期末试卷A卷(含答案)
1算法设计与分析课程期末试卷A卷(含答案)华南农业大学期末考试试卷(A卷)2008学年第一学期考试科目:算法分析与设计考试类型:(闭卷)考试时间:120分钟学号姓名年级专业一、选择题(20分,每题2分)1.下述表达不正确的是。
DA.n2/2 + 2n的渐进表达式上界函数是O(2n)B.n2/2 + 2n的渐进表达式下界函数是Ω(2n)C.logn3的渐进表达式上界函数是O(logn)D.logn3的渐进表达式下界函数是Ω(n3)2.当输入规模为n时,算法增长率最大的是。
AA.5n B.20log2n C.2n2D.3nlog3n3.T(n)表示当输入规模为n时的算法效率,以下算法效率最优的是。
C A.T(n)= T(n – 1)+1,T(1)=1 B.T(n)= 2n2 C.T(n)= T(n/2)+1,T(1)=1 D.T(n)= 3nlog2n4.在棋盘覆盖问题中,对于2k×2k的特殊棋盘(有一个特殊方块),所需的L型骨牌的个数是。
AA.(4k– 1)/3 B.2k /3 C.4k D.2k5.在寻找n个元素中第k小元素问题中,若使用快速排序算法思想,运用分治算法对n个元素进行划分,应如何选择划分基准?下面答案解释最合理。
D A.随机选择一个元素作为划分基准B.取子序列的第一个元素作为划分基准C.用中位数的中位数方法寻找划分基准D.以上皆可行。
但不同方法,算法复杂度上界可能不同6.现在要盖一所邮局为这9个村庄服务,请问邮局应该盖在才能使到邮局到这9个村庄的总距离和最短。
CA.(4.5,0)B.(4.5,4.5)C.(5,5)D.(5,0)7.n个人拎着水桶在一个水龙头前面排队打水,水桶有大有小,水桶必须打满水,水流恒定。
如下说法不正确?AA.让水桶大的人先打水,可以使得每个人排队时间之和最小B.让水桶小的人先打水,可以使得每个人排队时间之和最小C.让水桶小的人先打水,在某个确定的时间t内,可以让尽可能多的人打上水D.若要在尽可能短的时间内,n个人都打完水,按照什么顺序其实都一样8.分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。
《算法分析与设计》期末试题及参考答案
《算法分析与设计》期末试题及参考答案一、简要回答下列问题:1.算法重要特性是什么?1.确定性、可行性、输入、输出、有穷性2.2.算法分析的目的是什么?2.分析算法占用计算机资源的情况,对算法做出比较和评价,设计出额更好的算法。
3.3.算法的时间复杂性与问题的什么因素相关?3. 算法的时间复杂性与问题的规模相关,是问题大小n的函数。
4.算法的渐进时间复杂性的含义?4.当问题的规模n趋向无穷大时,影响算法效率的重要因素是T(n)的数量级,而其他因素仅是使时间复杂度相差常数倍,因此可以用T(n)的数量级(阶)评价算法。
时间复杂度T(n)的数量级(阶)称为渐进时间复杂性。
5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?5. 最坏情况下的时间复杂性和平均时间复杂性考察的是n固定时,不同输入实例下的算法所耗时间。
最坏情况下的时间复杂性取的输入实例中最大的时间复杂度:W(n) = max{ T(n,I) } , I∈Dn平均时间复杂性是所有输入实例的处理时间与各自概率的乘积和:A(n) =∑P(I)T(n,I) I∈Dn6.简述二分检索(折半查找)算法的基本过程。
6. 设输入是一个按非降次序排列的元素表A[i:j] 和x,选取A[(i+j)/2]与x比较,如果A[(i+j)/2]=x,则返回(i+j)/2,如果A[(i+j)/2]<x,则A[i:(i+j)/2-1]找x,否则在A[ (i+j)/2+1:j] 找x。
上述过程被反复递归调用。
7.背包问题的目标函数和贪心算法最优化量度相同吗?7. 不相同。
目标函数:获得最大利润。
最优量度:最大利润/重量比。
8.采用回溯法求解的问题,其解如何表示?有什么规定?8. 问题的解可以表示为n元组:(x1,x2,……x n),x i∈S i, S i为有穷集合,x i∈S i, (x1,x2,……x n)具备完备性,即(x1,x2,……x n)是合理的,则(x1,x2,……x i)(i<n)一定合理。
算法设计与分析期末试卷A卷
20xx—20xx学年第二学期期末考试试卷课程名称:算法分析与设计(A卷,闭卷)班级_计科xxxx班________ 学号_________ 姓名_________一、单项选择题(共40分,每题2分)1、衡量一个算法好坏的标准是()。
A 运行速度快 B时间复杂度低 C 占用空间少 D 代码短2、下列算法中通常以深度优先方式系统搜索问题解的是()。
A、备忘录法B、动态规划法C、贪心法D、回溯法3、分支限界法解最大团问题时,活结点表的组织形式是()。
A、最大堆B、最小堆C、栈D、数组4、下列哪一种算法是随机化算法()A. 贪心算法B. 舍伍德算法C.回溯法D. 动态规划算法5、二分搜索算法属于以下哪一种算法()。
A)动态规划算法 B)分治法 C)贪心法 D)分支限界法6、下面是贪心算法的基本要素的是()。
A、重叠子问题B、定义最优解C、构造最优解D、贪心选择性质7、动态规划算法的基本要素为()A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.预排序与递归调用D.最优子结构性质与重叠子问题性质8、算法分析中,记号 表示()。
A.渐进下界B.渐进上界C.非紧上界D.紧渐进界9、下面问题()不能使用贪心法解决。
A 单源最短路径问题B N皇后问题C 背包问题 D最小花费生成树问题10、采用广度优先策略搜索的算法是()。
A、贪心法B、动态规划法C、分支界限法D、回溯法11、使用分治法求解不需要满足的条件是()。
A 子问题必须是一样的B 子问题不能够重复C 子问题的解可以合并D 原问题和子问题使用相同的方法解12、实现合并排序利用的算法是()。
A、分治策略B、动态规划法C、贪心法D、回溯法13、广度优先是()的一搜索方式。
A、动态规划法B、贪心法C、分支界限法D、回溯法14、以下算法程序中的基本操作是()。
public static void main(String[] args) {int a,b;int count=0;int m=1;a=5;b=9;for(int i=0;i<a;i++){m+=2;for(int j=0;j<b;j++){count++;}}}A、a=5;B、b=9;C、m+=2;D、count++;15、下列哪一种算法不是随机化算法()。
算法设计与分析期末试题考试版
1、用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现7、程序调试8、结果整理文档编制2、算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程3、算法的三要素1、操作2、控制结构3、数据结构算法具有以下5个属性:有穷性:确定性:可行性:输入:输出:算法设计的质量指标:正确性:算法应满足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解;健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。
一般这两者与问题的规模有关。
复杂性的渐近性态设T(N)是算法A的复杂性函数,使得当N→∞时有:(T(N)-T’(N))/T(N) → 0那么,我们就说T’(N)是T(N)当N→∞时的渐近性态,或叫T’(N)为算法A当N→∞的渐近复杂性而与T(N)相区别。
P = NP经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法分而治之法1、基本思想将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
分治法所能解决的问题一般具有以下几个特征:(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;(3)利用该问题分解出的子问题的解可以合并为该问题的解;(4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。
3、分治法的基本步骤(1)分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;(2)解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题;(3)合并:将各个子问题的解合并为原问题的解。
递归:直接或间接的调用自身的算法,叫做递归算法。
《算法设计与分析》考试题目及答案
《算法分析与设计》期末复习题一、选择题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.能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用7. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。
计算机算法设计与分析期末试题4套(含答案)
(1)用计算机求解问题的步骤:一、问题分析二、数学模型成立3、算法设计与选择4、算法指标五、算法分析六、算法实现7、程序调试八、结果整理文档编制(2)算法概念:算法是指在解决问题时,依照某种机械步骤必然可以取得问题结果的处置进程(3)算法的三要素一、操作二、控制结构3、数据结构算法具有以下5个属性:有穷性:一个算法必需老是在执行有穷步以后结束,且每一步都在有穷时间内完成。
肯定性:算法中每一条指令必需有确切的含义。
不存在二义性。
只有一个入口和一个出口可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的大体运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
算法设计的质量指标:正确性:算法应知足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解;健壮性:算法应具有容错处置,当输入为非法数据时,算法应对其作出反映,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行进程中所需要的最大存储空间。
一般这二者与问题的规模有关。
常常采用的算法主要有迭代法、分而治之法、贪婪法、动态计划法、回溯法、分支限界法迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方式。
利用迭代算法解决问题,需要做好以下三个方面的工作:一、肯定迭代模型。
在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
二、成立迭代关系式。
所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。
迭代关系式的成立是解决迭代问题的关键,通常可利用递推或倒推的方式来完成。
三、对迭代进程进行控制。
在何时结束迭代进程?这是编写迭代程序必需考虑的问题。
不能让迭代进程无停止地重复执行下去。
迭代进程的控制通常可分为两种情况:一种是所需的迭代次数是个肯定的值,可以计算出来;另一种是所需的迭代次数无法肯定。
(完整word版)算法设计与分析课程期末试卷
华南农业大学期末考试试卷(A卷)2007学年第一学期考试科目: 算法分析与设计考试类型: (开卷)考试时间: 120分钟学号姓名年级专业一、选择题(20分, 每题2分)1.void hanoi(int n, int a, int b, int c){if (n > 0){hanoi(n-1, a, c, b)。
move(a,b)。
hanoi(n-1, c, b, a)。
}}上述算法的时间复杂度为A.A. O(2n)B. O(nlog n)C. Θ(n!)D. Θ(nn)2.当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时, 可以使用B来消除或减少问题的好坏实例间的这种差别.(A)数值概率算法(B)舍伍德算法(C)拉斯维加斯算法(D)蒙特卡罗算法3.对于下列二分搜索算法, 正确的是D.(A)public static int binarySearch(int[] a, int x, int n){int left = 0, right = n-1。
while(left <= right){int middle = (left + right) / 2。
if(x == a[middle]) return middle。
if(x > a[middle]) left = middle。
else right = middle。
}//whilereturn –1。
}(B)public static int binarySearch(int[] a, int x, int n) {int left = 0, right = n-1。
while(left+1 != right){int middle = (left + right) / 2。
if(x >= a[middle]) left = middle。
else right = middle。
}//whileif(x == a[left]) return left。
(完整版)算法设计与分析期末考试卷及答案a
e i rb ei n一.填空题: 1. 元运算2. O 3.∑∈nD I I t I p )()(4. 将规模为n 的问题分解为子问题以及组合相应的子问题的解所需的时间5. 分解,递归,组合6. 在问题的状态空间树上作带剪枝的DFS 搜索(或:DFS+剪枝)7. 前者分解出的子问题有重叠的,而后者分解出的子问题是相互独立(不重叠)的8. 局部9. 高10. 归并排序算法11. 不同12. v=random (low, high); 交换A[low]和A[v]的值 随机选主元13. 比较n二.计算题和简答题:1. 阶的关系:(1) f(n)= O(g(n))(2) f(n)=(g(n))Ω (3) f(n)=(g(n))Ω (4) f(n)= O(g(n))3. (1) i>=1 (2)k[i]+1 (3) 1(4) i+1 (5) k[i]=0 (6) tag[x, y]=0(7) x=x-dx[k[i]]; y=y-dy[k[i]]四.算法设计题:1. 贪心选择策略:从起点的加油站起每次加满油后不加油行驶尽可能远,直至油箱中的油耗尽前所能到达的最远的油站为止,在该油站再加满油。
算法MINSTOPS输入:A、B两地间的距离s,A、B两地间的加油站数n,车加满油后可行驶的公里数m,存储各加油站离起点A的距离的数组d[1..n]。
输出:从A地到B地的最少加油次数k以及最优解x[1..k](x[i]表示第i次加油的加油站序号),若问题无解,则输出no solution。
d[n+1]=s; //设置虚拟加油站第n+1站。
for i=1 to nif d[i+1]-d[i]>m thenoutput “no solution”; return //无解,返回end ifend fork=1; x[k]=1 //在第1站加满油。
s1=m //s1为用汽车的当前油量可行驶至的地点与A点的距离i=2while s1<sif d[i+1]>s1 then //以汽车的当前油量无法到达第i+1站。
算法期末考试试卷
算法期末考试试卷一、选择题(每题2分,共20分)1. 在图论中,下列哪项不是图的基本术语?- A. 顶点- B. 边- C. 环- D. 矩阵2. 快速排序算法的平均时间复杂度是:- A. O(n)- B. O(n log n)- C. O(n^2)- D. O(log n)3. 哈希表解决冲突最常用的方法是:- A. 链地址法- B. 开放地址法- C. 再哈希法- D. 二次探测法4. 以下哪个是动态规划算法的典型问题?- A. 二分搜索- B. 快速排序- C. 背包问题- D. 归并排序5. 在算法分析中,最坏情况下的时间复杂度是指:- A. 平均时间复杂度- B. 最优时间复杂度- C. 所有可能输入的时间复杂度中的最大值 - D. 随机时间复杂度6. 递归算法的基本思想是:- A. 将问题分解为更小的子问题- B. 将问题转化为更简单的问题- C. 将问题转化为更复杂的问题- D. 将问题转化为多个问题7. 以下哪个是贪心算法不能解决的问题?- A. 单源最短路径问题- B. 活动选择问题- C. 背包问题- D. 旅行商问题8. 以下哪个排序算法是稳定的?- A. 快速排序- B. 堆排序- C. 归并排序- D. 冒泡排序9. 以下哪个是图的遍历算法?- A. 深度优先搜索(DFS)- B. 广度优先搜索(BFS)- C. 回溯算法- D. 动态规划10. 以下哪个是并查集算法的应用场景?- A. 最小生成树- B. 图的连通性- C. 单源最短路径- D. 动态规划二、简答题(每题10分,共30分)1. 简述二叉树的前序遍历、中序遍历和后序遍历的区别。
2. 描述动态规划和贪心算法的区别,并给出一个例子。
3. 解释什么是时间复杂度,并说明为什么在算法设计中考虑时间复杂度很重要。
三、编程题(每题25分,共50分)1. 编写一个函数,实现快速排序算法,并用一个数组测试你的函数。
2. 编写一个函数,实现Dijkstra算法,用于计算图中单源最短路径,并用一个图的示例来测试你的函数。
算法设计分析期末考试试卷
2011 年 12 月考试算法设计分析第一次作业一、单项选择题(本大题共 30 分,共 15 小题,每小题 2 分)1. 算法分析的两个主要方面是()。
A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂度和程序复杂度2. 计算机算法指的是()。
A. 计算方法B. 排序方法C. 解决问题的方法和过程D. 调度方法3. 多阶段决策问题就是要在可以选择的那些策略中间选取一个()策略使在预定的标准下达到最好的效果。
A. 最优B. 最差C. 平衡D. 任意4. 根据排序元素所在位置的不同,排序分()。
A. 内排序和外排序B. 首排序和尾排序C. 顺序排序和逆序排序D. 堆排序和栈排序5. 算法必须具备输入、输出和()等 5 个特性。
A. 可执行性、可移植性和可扩充性B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性6. 与分治法不同的是,适合于用动态规划求解的问题()A. 经分解得到子问题往往不是互相独立的B. 经分解得到子问题往往是互相独立的C. 经分解得到子问题往往是互相交叉的D. 经分解得到子问题往往是任意的7. 二分搜索算法的基本思想是将 n 个元素分成个数大致相同的两半,取 an/2与 x 进行比较:如果(),则只要在数组 a 的左半部继续搜索 x。
A. x<an/2B. xan/2C. xan/2D. xan/28. 活动安排问题就是在所给的活动集合中,选出()的相容活子集。
A. 最小B. 任意C. 最大D. 一个9. 在对问题的解空间树进行搜索的方法中一个活结点最多有一次机会成为活结点的是()A. 回溯法B. 分支限界法C. 回溯法和分支限界法D. 回溯法求解子集树问题10. 适用动态规划的问题必须满足()A. 最优化原理B. 无前效性C. 最优化原理和后效性D. 最优化原理和无后效性11. 算法的每种运算必须要有确切的定义不能有二义性以下符合算法确定性运算的是()A. 5/0B. 将 6 或 7 与 x 相加C. 未赋值变量参与运算D. fnfn-12F110n 为自然数12.直接或间接的调用自身的算法称为()。
《算法设计与分析》考试题目及答案(DOC)
构。 10.用回溯法解 0/1 背包问题时,计算结点的上界的函数如下所示,请在空
格中填入合适的内容:
Typep Knap<Typew, Typep>::Bound(int i) {// 计算上界
return true; }
13. 旅行售货员问题的解空间树是(排列树)。
三、 证明题
1. 一个分治法将规模为 n 的问题分成 k 个规模为 n/m 的子问题去解。设分
解阀值 n0=1,且 adhoc 解规模为 1 的问题耗费 1 个单位时间。再设将原问
题分解为 k 个子问题以及用 merge 将 k 个子问题的解合并为原问题的解需用
12. 用回溯法解图} 的 m 着色问题时,使用下面的函数 OK 检查当前扩展结点的
每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn))。
Bool Color::OK(int k) {//
for(int j=1;j<=n;j++) if((a[k][j]= =1)&&(x[j]= =x[k])) return false;
Typew cleft = c - cw; // 剩余容量
Typep b = cp;
// 结点的上界
// 以物品单位重量价值递减序装入物品
while (i <= n && w[i] <= cleft) {
cleft -= w[i];
b += p[i];
i++;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011 年 12 月考试算法设计分析第一次作业
一、单项选择题(本大题共 30 分,共 15 小题,每小题 2 分)
1. 算法分析的两个主要方面是()。
A. 空间复杂度和时间复杂度
B. 正确性和简单性
C. 可读性和文档性
D. 数据复杂度和程序复杂度
2. 计算机算法指的是()。
A. 计算方法
B. 排序方法
C. 解决问题的方法和过程
D. 调度方法
3. 多阶段决策问题就是要在可以选择的那些策略中间选取一个()策略使在预定的标准下达到最好的效果。
A. 最优
B. 最差
C. 平衡
D. 任意
4. 根据排序元素所在位置的不同,排序分()。
A. 内排序和外排序
B. 首排序和尾排序
C. 顺序排序和逆序排序
D. 堆排序和栈排序
5. 算法必须具备输入、输出和()等 5 个特性。
A. 可执行性、可移植性和可扩充性
B. 可行性、确定性和有穷性
C. 确定性、有穷性和稳定性
D. 易读性、稳定性和安全性
6. 与分治法不同的是,适合于用动态规划求解的问题()
A. 经分解得到子问题往往不是互相独立的
B. 经分解得到子问题往往是互相独立的
C. 经分解得到子问题往往是互相交叉的
D. 经分解得到子问题往往是任意的
7. 二分搜索算法的基本思想是将 n 个元素分成个数大致相同
的两半,取 an/2与 x 进行比较:如果(),则只要在数组 a 的左半部继续搜索 x。
A. x<an/2
B. xan/2
C. xan/2
D. xan/2
8. 活动安排问题就是在所给的活动集合中,选出()的相容活子集。
A. 最小
B. 任意
C. 最大
D. 一个
9. 在对问题的解空间树进行搜索的方法中一个活结点最多有一次机会成为活结点的是()
A. 回溯法
B. 分支限界法
C. 回溯法和分支限界法
D. 回溯法求解子集树问题
10. 适用动态规划的问题必须满足()
A. 最优化原理
B. 无前效性
C. 最优化原理和后效性
D. 最优化原理和无后效性
11. 算法的每种运算必须要有确切的定义不能有二义性以下符合算法确定性运算的是()
A. 5/0
B. 将 6 或 7 与 x 相加
C. 未赋值变量参与运算
D. fnfn-12F110n 为自然数
12.直接或间接的调用自身的算法称为()。
A.贪心算法
B. 递归算法
C. 迭代算法
D. 动态规划算法
13.二分查找只适用()存储结构。
A. 堆B. 顺序C. 任意顺序D. 栈
14.实现快速排序算法如下:
private static void quickSort(int p,int r)
{
if(p<r)
{
int q=partition(p,r);
();
qicksort(q+1,r);
}
}
A.quickSortpq-1
B. quickSortp1q-1
C. quickSortpq1
D. quickSortpq-2
15.应用分治法的两个前提是()。
A.问题的可分性和解的可归并性
B. 问题的可分性和解的存在性
C. 问题的复杂性和解的可归并性
D. 问题的可分性和解的复杂性
二、判断题(本大题共 70 分,共 20 小题,每小题分)
1.算法就是一组有穷的规则
2. 概率算法中蒙特卡罗算法得到的解必是正确的
3. 程序和算法一样,都是某种程序设计语言的具体实现。
()
4. 合并排序算法是渐近最优算法
5. 递归定义必须是有确切含义是指必须一步比一步简单最后是有终结的决不能无限循环下去
6. 二分搜索方法在最坏的情况下用 Olog n时间完成搜索任务。
()
7.能否利用分治法完全取决于问题是否具有如下特征:利用该问题分解出的子问题的解可以合并为该问题的解。
8. 分治法的基本思想是将一个规模较大的问题分解成若干个规模较小的子问题,这些子问题之间并不一定相互独立()
9.递归算法的效率往往很低,费时和费内存空间
10. 当一个问题具有最优子结构性质时只能用动态规划方法求解。
11. 如果一类活动过程一个阶段的决策确定以后,常影响到下一个阶段的决策,则称它为多阶段决策问题。
()
12.反复应用分治手段不能使子问题与原问题类型一致而其规模却不断缩小
13. 裴波那契数列的定义:fnfn-1fn-2f01f12,其数据的定义形式不是按递归定义。
14. 0-1 背包问题与背包问题这两类问题都可以用贪心算法求解。
()
15.证明贪心选择后的问题简化为规模更小的类似子问题的关键在于利用该问题的最优子结构性质。
()
16.子问题之间不包含公共的子问题这个条件涉及到分治法的效率
17.概率算法允许在执行过程中随机地选择下一个计算步骤 18.
二分搜索法的二分查找只适用于顺序存储结构。
()
19.要想在电脑上扩大所处理问题的规模,有效的途径是降低算法的计算复杂度
20.用回溯法解题一个显著特征是在搜索过程中动态产生问题的解空间()
答案:一、单项选择题(30 分,共 15 题,每小题 2 分)1. A 2. C 3. A 4. A 5. B 6. A 7. A 8. C 9. B 10. D 11. B 12. B 13. B14. A 15. A二、判断题(70 分,共 20 题,每小题分)1. √ 2. × 3. × 4. √ 5. √ 6. √ 7. √ 8. × 9. √ 10. × 11. √12. √ 13. × 14. × 15. × 16. √ 17. √ 18. √ 19. √ 20. √。