05计本算法设计与分析期考试卷(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.动态规划算法的基本思想是什么?它和分治法有什么区别和联系?答:动态规划算法的基本思想为:该方法的思路也是将待求解的大问题分成规模较小的子问题,但所得的各子问题之间有重复子问题,为了避免子问题的重复计算,可依自底向上的方式计算最优值,并根据子问题的最优值合并得到更大问题的最优值,进而可构造出所求问题的最优解。
(完整word版)计算机算法设计与分析期末试题4套(含答案)

(1)用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现7、程序调试8、结果整理文档编制(2)算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程(3)算法的三要素1、操作2、控制结构3、数据结构算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。
不存在二义性。
只有一个入口和一个出口可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
算法设计的质量指标:正确性:算法应满足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解;健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。
一般这两者与问题的规模有关。
经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。
利用迭代算法解决问题,需要做好以下三个方面的工作:一、确定迭代模型。
在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
二、建立迭代关系式。
所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。
迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。
三、对迭代过程进行控制。
在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。
不能让迭代过程无休止地重复执行下去。
迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。
算法设计与分析期末考试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 。
武汉大学计算机学院《算法设计与分析》考试试卷

武汉大学计算机学院2007---2008学年第一学期2005级《算法设计与分析》考试试卷(A)1、(10分)证明:若f₁(n)=O(g₁(n)), f₂(n)=O(g₂(n)),则有:f₁(n)* f₂(n)= O(g₁(n))* O(g₂(n))2、(10分)设f(n)为单调递减函数,利用不等式证明:= O(log n)。
3、(10分)用归纳法证明递归关系:T(n的解为T(n)=,n=0,1,2….4、(10分)试用RadixSort算法对下面数组进行排序,写出排序的详细过程:1455,5677,5323,8122,4901,6647,1123,87625、(10分)给定数组含25个元素的数组如下,利用SELECT算法求数组中第13小的元素,在应用SELECT算法时,要求每组含有的元素个数为7而不是5,另外,当元素个数是6时,直接求解:8,33,17,51,57,49,35,11,25,37,14,2,3, 13,52,12,6,29,32,54,5,16,22,23,76、(12分)给定两个字符串X=(A,B,C,B,D,A,B)和Y=(B,D,C,A,B,A),考虑利用动态规划方法求解这两个字符串的最长公共子序列问题:(1)利用动态规划算法求出上述两个字符串的最长公共子序列,要求写出动态规划方程和详细的求解过程,不需要写出具体的算法;(2)请给出一个最长公共子序列的表达式,并说明你的依据。
7、(12分)假设有一个包含100,000个字符的数据文件要压缩存储,各字符的出现频度如下:(1)试构造出这些字符的哈弗曼编码方案,要求写出详细过程,不需要写出具体算法;(2)计算采用哈弗曼编码方案与定长编码的压缩比。
8、(16分)设有向图的成本矩阵如下,写出利用TSP问题的分析限界法(搜索树限为二叉树)求经过该图每个节点刚好一次的闭合最短路径的过程:(1)写出原始成本矩阵的归约矩阵,并计算其矩阵约数;(2)写出用来划分节点的边的选择方法;(3)给出具体的搜索树;(4)根据搜索树,列出最优的周游路线和其对应的成本值。
(完整版)算法设计与分析考试题及答案,推荐文档

____________________________________。 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
算法设计与分析(试题B卷)

《算法设计与分析》答卷说明: 1、考试方式闭卷2、满分100分题号一二三四五六七总分总分人分数得分评卷人一、单项选择题(每小题2分,共20分)1、下面关于NP问题说法正确的是()。
A 、NP问题都是不可能解决的问题B 、P类问题包含在NP类问题中C 、NP完全问题是P类问题的子集D 、NP类问题包含在P类问题中2、能采用贪心算法求最优解的问题,一般具有的重要性质为:()A、最优子结构性质与贪心选择性质B、重叠子问题性质与贪心选择性质C、最优子结构性质与重叠子问题性质D、预排序与递归调用3、实现合并排序利用的算法是()。
A、分治策略B、动态规划法C、贪心法D、回溯法4、以下不可以使用分治法求解的是()。
A、棋盘覆盖问题B、选择问题C、归并排序D、0/1背包问题5、记号O的定义正确的是()。
A、O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ f(n) ≤cg(n) };B、O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ cg(n) ≤f(n) };C、O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n>0使得对所有n≥n0有:0 ≤f(n)<cg(n) };D、O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n>0使得对所有n≥n0有:0 ≤cg(n) < f(n) };6、使用分治法求解不需要满足的条件是()。
A、子问题必须是一样的B、子问题不能够重复C、子问题的解可以合并D、原问题和子问题使用相同的方法解7、以下关于渐进记号的性质是正确的有:()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))=⇔=8、衡量一个算法好坏的标准是()。
《计算机算法设计与分析》习题及答案
《计算机算法设计与分析》习题及答案一.选择题1、二分搜索算法是利用( A )实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的一搜索方式。
A、分支界限法B、动态规划法C、贪心法D、回溯法4. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树B、排列树C、深度优先生成树D、广度优先生成树5.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法B、动态规划法C、贪心法D、回溯法6、衡量一个算法好坏的标准是( C )。
A 运行速度快B 占用空间少C 时间复杂度低D 代码短7、以下不可以使用分治法求解的是( D )。
A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题8. 实现循环赛日程表利用的算法是( A )。
A、分治策略B、动态规划法C、贪心法D、回溯法9.下面不是分支界限法搜索方式的是( D )。
A、广度优先B、最小耗费优先C、最大效益优先D、深度优先10.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法B、动态规划法C、贪心法D、回溯法11.备忘录方法是那种算法的变形。
( B )A、分治法B、动态规划法C、贪心法D、回溯法12.哈夫曼编码的贪心算法所需的计算时间为( B )。
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)13.分支限界法解最大团问题时,活结点表的组织形式是( B )。
A、最小堆B、最大堆C、栈D、数组14.最长公共子序列算法利用的算法是( B )。
A、分支界限法B、动态规划法C、贪心法D、回溯法15.实现棋盘覆盖算法利用的算法是( A )。
A、分治法B、动态规划法C、贪心法D、回溯法16.下面是贪心算法的基本要素的是( C )。
A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解17.回溯法的效率不依赖于下列哪些因素( D )A.满足显约束的值的个数B. 计算约束函数的时间C.计算限界函数的时间D. 确定解空间的时间18.下面哪种函数是回溯法中为避免无效搜索采取的策略( B )A.递归函数 B.剪枝函数 C。
05计本算法设计与分析期考试卷C卷_标准答案
2005计本《算法设计与分析》期考试卷(C)标准答案一. 填空题:1. 时间复杂性和空间复杂性2. 下3. 输入I 出现的概率4. 多项式阶5. 重叠的子问题越多6. 分解,递归,组合7. 深度优先搜索顺序(或DFS 搜索顺序)8. 最优化9. 优先队列10. 快速排序算法11. 对原问题的求解可转化为对其性质相同的子问题的求解。
12. 可能不同13. mid=random(low, high)14. 加法(或:赋值)2n-1二. 计算题和简答题:1. 1. 各函数的阶为:n 3/(n+5)= Θ(n 2), 2n + 3n/2=Θ(2n ), 5n 2log 3n+n 3log 2n=Θ(n 3log 2n) , n!+n n =Θ(n n ) , log(logn)/1000=Θ(log(logn))按阶从低到高的顺序排列这些函数的结果是:log(logn)/1000, n 3/(n+5), 5n 2log 3n+n 3log 2n, 2n + 3n/2, n!+n n2. 该分治算法的时间复杂性T(n)满足下列递归方程:⎩⎨⎧>++===1n , 1n nlog 2T (n/2)T (n)1n , 1T (n)2 将n=k2, a=2, c=2, g(n)=n n log 2+1, d=1代入该类递归方程解的一般形式得:T(n)=n+ ∑-=⎪⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛1k 0i i 2i i12n log 2n 2=n+n )i n (log 1k 0i 2-∑-=+∑=1-k 0i i 2 =n+kn n log 2-2)1k (nk -+12k - =2n+n log n 2122+n log n 212-1 所以,T(n)= 2n+n log n 2122+n log n 212-1=)n log n (22Θ。
3. C[1, 4]=116 C[2, 5]=116 C[1, 5]=316S[1, 4]=2 S[2, 5]=5 S[1, 5]=2最优顺序:M 1 (((M 2M 3 )M 4 )M 5 )三. 算法填空题:1. (1) A, low, w-1 (2) A, w+1, high (3) i+1(4) A[i]↔A[j] (5) A[i]↔A[low]2. (1) k>=1 (2) x[k]+1(3) k+1 (4) x[k]=0(5) k=k-13. (1) –1 (2) knapsack(i-1, j1)+v1 (3) k0=k(4) max (5) H[i, j]=k0 (6) y-x[i+1]*s[i+1](7) H[i, y]四. 算法设计题:1. 贪心选择策略:按面值从高到低的顺序即按面值11-n n c , ,c ,c 的顺序找出硬币,对面值高的硬币尽可能多找出。
2009-2010学年第二学期《计算机算法设计与分析》试卷A--参考答案(软07级)
2009—2010 学年第二学期《计算机算法设计与分析》试卷(A)(院系:软件学院专业:软件工程年级:07级考核形式:开卷)参考答案一、简答题(共3小题,第1,2小题3分,第3小题4分,总计10分)1.(3分) 请用英文写出三种以上能求解0-1背包问题的设计算法策略。
答:Dynamic ProgrammingBacktrackBranch-and-Bound(每答对一条给一分)2.(3分) 请说明动态规划方法为什么需要最优子结构性质。
答:最优子结构性质是指大问题的最优解包含子问题的最优解。
动态规划方法是自底向上计算各个子问题的最优解,即先计算子问题的最优解,然后再利用子问题的最优解构造大问题的最优解,因此需要最优子结构3. (4分) 请说明:(1)优先队列可用什么数据结构实现?(2)优先队列插入算法基本思想?(3)优先队列插入算法时间复杂度?答:(1)堆。
(1分)(2)在小根堆中,将元素x插入到堆的末尾,然后将元素x的关键字与其双亲的关键字比较,若元素x的关键字小于其双亲的关键字,则将元素x与其双亲交换,然后再将元素x与其新双亲的关键字相比,直到元素x的关键字大于双亲的关键字,或元素x到根为止。
(3)O( log n)(1分)二、填空题(共15个空,每空1分,总计15分)1.递归的二分查找算法在divide阶段所花的时间是O(1) ,conquer 阶段所花的时间是T(n/2) ,算法的时间复杂度是O( log n)。
2.Prim算法利用贪心策略求解最小生成树问题,其时间复杂度是O(n2) 。
3.背包问题可用贪心法,回溯法等策略求解。
4.用动态规划算法计算矩阵连乘问题的最优值所花的时间是O(n3) ,子问题空间大小是O(n2) 。
5.图的m着色问题可用回溯法求解,其解空间树中叶子结点个数是m n,解空间树中每个内结点的孩子数是m 。
6.单源最短路径问题可用贪心法、分支限界等策略求解。
三、计算题(共4小题,第1,2,3小题10分,第4小题15分, 总计45分) 1.用动态规划策略求解最长公共子序列问题: (1)给出计算最优值的递归方程。
《算法设计与分析》试卷及答案
《算法设计与分析》试卷及答案算法设计与分析考试复习试卷《算法设计与分析》试卷1一、多项选择题(每空2分,共20分):1、以下关于算法设计问题的叙述中正确的是__________。
A、计算机与数值问题的求解——方程式求根、插值问题、数值积分、函数逼近等有关B、利用计算机无法解决非数值问题C、计算机在解决分类、语言翻译、图形识别、解决高等代数和组合分析等方面的数学问题、定理证明、公式推导乃至日常生活中各种过程的模拟等问题中,主要进行的是判断、比较,而不是算术运算D、算法设计与分析主要研究对象是非数值问题,当然也包含某些数值问题2、算法的特征包括_________。
A、有穷性B、确定性C、输入和输出D、能行性或可行性3、以下描述是有关算法设计的基本步骤:①问题的陈述②算法分析③模型的拟制④算法的实现⑤算法的详细设计⑥文档的编制,应与其它环节交织在一起其中正确的顺序是__________。
A、①②③④⑤⑥B、①③⑤②④⑥C、②④①③⑤⑥D、⑥①③⑤②④4、以下说法正确的是__________。
A、数学归纳法可以证明算法终止性B、良序原则是证明算法的正确性的有力工具C、x = 小于或等于x的最大整数(x的低限)D、x = 小于或等于x的最大整数(x的高限)5、汉诺塔(Hanoi)问题中令h(n)为从A移动n个金片到C 上所用的次数,则递归方程为__________,其初始条件为__________,将n个金片从A柱移到C柱上的移动次数是__________;设菲波那契(Fibonacci)数列中Fn为第n个月时兔子的对数,则有递归方程为__________,其中F1=F2=__________。
A、Fn=Fn-1+Fn-2B、h(n)= 2h(n-1)+1C、1D、h(1)= 1E、h(n)=2n-1F、06、在一个有向连通图中(如下图所示),找出点A到点B的一条最短路为____ ______。
A、最短路:1→3→5→8→10,耗费:20B、最短路:1→4→6→9→10,耗费:16。