《算法分析与设计》期末考试复习题-学生版
算法设计与分析复习题
![算法设计与分析复习题](https://img.taocdn.com/s3/m/4c36747c580102020740be1e650e52ea5418ce05.png)
算法设计与分析复习题算法设计与分析是计算机科学中的一个重要领域,它涉及到如何高效地解决计算问题。
以下是一些复习题,可以帮助学生更好地理解和掌握算法设计与分析的基本概念和技巧。
1. 算法的基本概念:- 什么是算法?请列举算法的基本特性。
- 解释算法的时间复杂度和空间复杂度,并给出一个例子。
2. 算法设计策略:- 描述贪心算法的工作原理,并给出一个实际问题的例子。
- 解释分治算法的基本步骤,并用快速排序算法来说明。
3. 排序算法:- 比较选择排序、插入排序和冒泡排序的时间复杂度。
- 描述归并排序和快速排序的工作原理,并讨论它们的优缺点。
4. 搜索算法:- 解释线性搜索和二分搜索的区别。
- 描述哈希表的工作原理,并讨论其在搜索算法中的应用。
5. 图算法:- 解释深度优先搜索(DFS)和广度优先搜索(BFS)的工作原理。
- 描述迪杰斯特拉(Dijkstra)算法和贝尔曼-福特(Bellman-Ford)算法,并比较它们的使用场景。
6. 动态规划:- 解释动态规划与分治法的区别。
- 给出一个动态规划解决的问题,并描述其解决方案。
7. 复杂度分析:- 什么是大O记号、大Ω记号和大Θ记号?它们如何帮助我们分析算法的效率?- 给出一个算法,并使用大O记号来分析其时间复杂度。
8. 算法优化:- 描述一些常见的算法优化技巧,例如空间换时间或时间换空间。
- 讨论算法优化在实际应用中的重要性。
9. 算法应用:- 举例说明算法在不同领域的应用,如在网络路由、机器学习或数据压缩中。
10. 算法的局限性:- 讨论算法在解决特定问题时可能遇到的局限性。
- 解释为什么某些问题被认为是不可解的或计算上不可行的。
结束语:通过这些复习题的练习,学生应该能够加深对算法设计与分析的理解,掌握不同算法的原理和应用场景,以及如何评估和优化算法的性能。
希望这些题目能够帮助学生在考试或实际工作中更加自信和高效。
算法设计与分析期末考试B卷
![算法设计与分析期末考试B卷](https://img.taocdn.com/s3/m/7db37fb5bdeb19e8b8f67c1cfad6195f312be8c8.png)
大学期末考试试卷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 。
《算法分析与设计》期末测验复习题纲(完整版)
![《算法分析与设计》期末测验复习题纲(完整版)](https://img.taocdn.com/s3/m/ce0bc7030066f5335a8121fa.png)
《算法分析与设计》期末测验复习题纲(完整版)————————————————————————————————作者:————————————————————————————————日期:《算法分析与设计》期末复习题一、选择题1.算法必须具备输入、输出和( D )等4个特性。
A.可行性和安全性 B.确定性和易读性C.有穷性和安全性 D.有穷性和确定性2.算法分析中,记号O表示( B ),记号Ω表示( A )A.渐进下界B.渐进上界C.非紧上界D.紧渐进界3.假设某算法在输入规模为n时的计算时间为T(n)=3*2^n。
在某台计算机上实现并完成概算法的时间为t秒。
现有另一台计算机,其运行速度为第一台的64倍,那么在这台新机器上用同一算法在t秒内能解输入规模为多大的问题?( B )解题方法:3*2^n*64=3*2^xA.n+8 B.n+6C.n+7 D.n+54.设问题规模为N时,某递归算法的时间复杂度记为T(N),已知T(1)=1,T(N)=2T(N/2)+N/2,用O表示的时间复杂度为( C )。
A.O(logN) B.O(N)C.O(NlogN) D.O(N²logN)5.直接或间接调用自身的算法称为( B )。
A.贪心算法 B.递归算法C.迭代算法 D.回溯法6.Fibonacci数列中,第4个和第11个数分别是( D )。
A.5,89 B.3,89C.5,144 D.3,1447.在有8个顶点的凸多边形的三角剖分中,恰有( B )。
A.6条弦和7个三角形 B.5条弦和6个三角形C.6条弦和6个三角形 D.5条弦和5个三角形8.一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。
A.重叠子问题 B.最优子结构性质C.贪心选择性质 D.定义最优解9.下列哪个问题不用贪心法求解( C )。
A.哈夫曼编码问题 B.单源最短路径问题C.最大团问题 D.最小生成树问题10.下列算法中通常以自底向上的方式求解最优解的是( B )。
算法设计与分析历年期末试题整理_含答案_
![算法设计与分析历年期末试题整理_含答案_](https://img.taocdn.com/s3/m/af4c096459eef8c75fbfb3a2.png)
《算法设计与分析》历年期末试题整理(含答案)(1)用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现 7、程序调试 8、结果整理文档编制(2)算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程(3)算法的三要素1、操作2、控制结构3、数据结构算法具有以下5 个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。
不存在二义性。
只有一个入口和一个出口可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
算法设计的质量指标:正确性:算法应满足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解;健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。
一般这两者与问题的规模有关。
经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。
利用迭代算法解决问题,需要做好以下三个方面的工作:一、确定迭代模型。
在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
二、建立迭代关系式。
所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。
迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。
三、对迭代过程进行控制。
在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。
不能让迭代过程无休止地重复执行下去。
算法设计与分析期末试卷A卷
![算法设计与分析期末试卷A卷](https://img.taocdn.com/s3/m/cdbaf7fc2dc58bd63186bceb19e8b8f67d1cef5c.png)
算法设计与分析期末试卷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.用回溯法解布线问题时,求最优解的主要程序段如下。
《算法分析与设计》期末考试复习题纲(完整版)
![《算法分析与设计》期末考试复习题纲(完整版)](https://img.taocdn.com/s3/m/04914266e45c3b3566ec8b2e.png)
《算法分析与设计》期末复习题一、选择题1.算法必须具备输入、输出和( D )等4个特性。
A.可行性和安全性 B.确定性和易读性C.有穷性和安全性 D.有穷性和确定性2.算法分析中,记号O表示( B ),记号Ω表示( A )A.渐进下界B.渐进上界C.非紧上界D.紧渐进界3.假设某算法在输入规模为n时的计算时间为T(n)=3*2^n。
在某台计算机上实现并完成概算法的时间为t秒。
现有另一台计算机,其运行速度为第一台的64倍,那么在这台新机器上用同一算法在t秒内能解输入规模为多大的问题?( B )解题方法:3*2^n*64=3*2^xA.n+8 B.n+6C.n+7 D.n+54.设问题规模为N时,某递归算法的时间复杂度记为T(N),已知T(1)=1,T(N)=2T(N/2)+N/2,用O表示的时间复杂度为( C )。
A.O(logN) B.O(N)C.O(NlogN) D.O(N²logN)5.直接或间接调用自身的算法称为( B )。
A.贪心算法 B.递归算法C.迭代算法 D.回溯法6.Fibonacci数列中,第4个和第11个数分别是( D )。
A.5,89 B.3,89C.5,144 D.3,1447.在有8个顶点的凸多边形的三角剖分中,恰有( B )。
A.6条弦和7个三角形 B.5条弦和6个三角形C.6条弦和6个三角形 D.5条弦和5个三角形8.一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。
A.重叠子问题 B.最优子结构性质C.贪心选择性质 D.定义最优解9.下列哪个问题不用贪心法求解( C )。
A.哈夫曼编码问题 B.单源最短路径问题C.最大团问题 D.最小生成树问题10.下列算法中通常以自底向上的方式求解最优解的是( B )。
A.备忘录法 B.动态规划法C.贪心法 D.回溯法11.下列算法中不能解决0/1背包问题的是( A )。
A.贪心法 B.动态规划C.回溯法 D.分支限界法12.下列哪个问题可以用贪心算法求解( D )。
《算法设计与分析》考试题目及答案
![《算法设计与分析》考试题目及答案](https://img.taocdn.com/s3/m/0fb46a5c561252d380eb6e91.png)
《算法分析与设计》期末复习题一、选择题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的输入时,在某条带上所使用过的最大方格数。
《算法分析与设计》期末试题及参考答案
![《算法分析与设计》期末试题及参考答案](https://img.taocdn.com/s3/m/2a9ff233fe00bed5b9f3f90f76c66137ee064f3c.png)
《算法分析与设计》期末试题及参考答案《算法分析与设计》期末试题及参考答案一、简要回答下列问题: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]<="">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)一定合理。
《算法设计与分析》期末必考复习及答案题整理
![《算法设计与分析》期末必考复习及答案题整理](https://img.taocdn.com/s3/m/86aa47c3b90d6c85ed3ac6a8.png)
《算法设计与分析》期末必考复习及答案题整理1、分治法的基本思想:是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题互相独立且与原问题相同。
递归地解这些子问题,然后将各子问题的解合并得到原问题的解。
2、贪心选择性质:指所求问题的整体最优解可以通过一系列局部最优的选择,3、 Prim算法:设G=(V,E)是连通带权图,V={1,2,…,n}。
构造G的最小生成树的Prim算法的基本思想是:首先置S={1},然后,只要S是V的真子集,就作如下的贪心选择:选取满足条件i?S,j?V-S,且c[j]最小的边,将顶点j添加到S 中。
这个过程一直进行到S=V时为止。
4、什么是剪枝函数:回溯法搜索解空间树时,通常采用两种策略避免无效搜索,提高回溯法的搜索效率。
其一是用约束函数在扩展结点处剪去不满足约束的子树;其二是用限界函数剪去得不到最优解的子树。
这两类函数统称为剪枝函数。
6、分支限界法的基本思想:(1)分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。
(2)在分支限界法中,每一个活结点只有一次机会成为扩展结点。
活结点一旦成为扩展结点,就一次性产生其所有儿子结点。
在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。
(3)此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程,这个过程一直持续到找到所需的解或活结点表这空时为止。
5、什么是算法的复杂性:是该算法所需要的计算机资源的多少,它包括时间和空间资源。
6、最优子结构性质:该问题的最优解包含着其子问题的最优解。
7、回溯法:是一个既带有系统性又带有跳跃性的搜索算法。
这在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。
算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。
如果肯定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。
《算法分析与设计》期末考试复习题-学生版
![《算法分析与设计》期末考试复习题-学生版](https://img.taocdn.com/s3/m/737daf23492fb4daa58da0116c175f0e7cd11976.png)
《算法分析与设计》期末复习题一、选择题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。
算法分析期末考试集答案(套)
![算法分析期末考试集答案(套)](https://img.taocdn.com/s3/m/12ef094327d3240c8447efc4.png)
调用第三层次 6 2 9 3 5 1 8 7 分成八个子问题
调用第四层次 只有一个元素返回上一层
第三层归并 2 ,6 3, 9 1,5 7,8 返回上一层
第二层归并 2 ,3,6, 9 1,5,7,8 返回上一层
第一层归并 1, 2 ,3, 5 ,6, 7, 8,9 排序结束,返回主函数
为了使上述右子树测试尽早生效,应提早更新bestw。又知算法最终找到的最优值是所求问题的子集树中所有可行结点相应重量的最大值。而结点所相应得重量仅在搜索进入左子树是增加,因此,可以在算法每一次进入左子树时更新bestw的值。
7. 最长公共子序列问题:给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列。
解:voidbacktrack(int i)
{//搜索第i层结点
if(i > n) //到达叶结点
更新最优解bestx,bestw;return;
r -= w[i];
if(cw + w[i] <= c) {//搜索左子树
x[i] = 1;
cw += w[i];
backtrack(i + 1);
cw -= w[i]; }
12,48 3,61 5,19 7,32
3, 12, 48, 61 5, 7, 19,32
3,5, 7,12,19,32,48,61
5、写出图着色问题的回溯算法的判断X[k]是否合理的过程。
解:i←0
whilei<k do
if G[k,i]=1 and X[k]= X[i] then
return false
《算法分析与设计》期末复习
![《算法分析与设计》期末复习](https://img.taocdn.com/s3/m/8da5430e6f1aff00bfd51e89.png)
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. 深度优先 10.回溯法的效率不依赖于以下哪一个因素?(C )
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) };
算法设计与分析期末考试复习题
![算法设计与分析期末考试复习题](https://img.taocdn.com/s3/m/8bec43024a7302768e99392e.png)
三、算法设计题1.背包问题的贪心算法V oid Knapsack(int n,float M,float v[],float w[],float x[]) {Sort(n,v,w);int i;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.循环赛日程表安排问题V oid Table(int k,int* *a){int n=1;for(int i=1;i<=k;i++)n*=2;for(int i=1;i<=n;i++)a[1][i]=i;for m=1;for(int s=1;i<=k;s++){n/=2;for(int t=1;t<=n;t++)for(int i=m+1;i<=2*m;i++)for(int j=m+1;j<=2*m;j++){a[i][j+(t-1)*m*2]=a[i-m][j+(t-1)*m*2-m];a[i][j+(t-1)*m*2-m]=a[i-m][j+(t-1)*m*2];m*=2;}}3.贪心算法求装载问题Template<class Type>void Loading(int x[],Type w[],Type c,int n){int *t=new int[n+1];Sort(w,t,n);for(int i=1;i<=n;i++)x[i]=0;for(int i=1;i<=n & & w[t[i]]<=c;i++){x[t[i]]=1;c-=w[t[i]];} }4.贪心算法求活动安排问题Template<class Type>void GreedySelector(int n,Type s[],Type f[],bool A[]){A[1]=true;int j=1;for(int i=2;i<=n;i++){If(s[i]>=f[j]){A[i]=true;j=1;}else A[i]=false;}}5.快速排序Template<class Type>V oid QuickSort(Type a[],int p,int r){if(p<r){int q=Partition(a,p,r);QuickSort(a,p,q-1);//对左半段排序QuickSort(a,q+1,r);//对右半段排序}}6.排列问题Template <class Type>void perm(Type list[], int k, int m ){ //产生[list[k:m]的所有排列if(k==m){ //只剩下一个元素for (int i=0;i<=m;i++) cout<<list[i];cout<<endl;}else //还有多个元素待排列,递归产生排列for (int i=k; i<=m; i++){swap(list[k],list[i]);perm(list,k+1;m);swap(list[k],list[i]);}}7.0-1背包问题8.旅行售货员问题template<class Type>class Traveling{friend void main(void);Public;Type BBTSP(int v[]);Private;int n;//图G的顶点数Type * *a,//图G的邻接矩阵NoEdge,//图G的无边标志cc,//当前费用bestc;//当前最小费用};四、算法分析题1.分治法的基本思想分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。
学堂在线《算法分析与设计》期末考试
![学堂在线《算法分析与设计》期末考试](https://img.taocdn.com/s3/m/1143a764bdd126fff705cc1755270722182e5943.png)
学堂在线《算法分析与设计》期末考试Exam1 /11单选题(1分)Gale-Shapley algorithm finds a stable matching in _____ time.答案C2 /11单选题(1分)is _____; is _____; is _____.答案A3 /11单选题(1分)A binary tree is a rooted tree in which each node has at most two children. What is the relation between the number of nodes with two childrenand thenumber of leaves (the nodes without children)in a binary tree?答案C4 /11单选题(1分)Suppose we are given an instance of the minmum spanning tree problem on a graph , with edge costs that are all positive and distinct. Let be a minimum spanning tree for this instance.Now suppose we replace each edge costby its square, thereby creating a new instance of the problem with the same graph but different costs. Decide whether you think the following statement is true or false.must still be a minimum spanning tree for this new instance.正确错误答案A5 /11单选题(1分)If an algorithm has running time , then may most likely satisfy that _____.答案B6 /11填空题(1分)There are five kinds of goods with value one, two, four, eight and ten dollars. You have 10 dollars to buy these goods.Using dynamic programming, there are ____different ways of buying goods.( 1+1+2+2+4 and 1+2+1+2+4 are the same way, but 1+1+4+4 and 1+1+2+2+4 are different)答案[ "15" ]7/11填空题(1分)The capacity of a minimum s−t cut in the flowing flow network is____.答案[ "21" ]8/11判断题(1分)If NP≠co−NP, then P≠NP.答案√9/11填空题(1分)We want to assign seven jobs with length 2, 3, 5, 7, 11, 13, 17 on 3 identical machines. The LPT rule gives a solution with makespan____.答案[ "20" ]10/11单选题(1分)We have a function f(x)=2x2−9x+3. We want to get the minimize value of f and define neighbors of x are x−1and x+1. We start at x=0. The algorithm finds a local optimum at x=_____.A1B2C3D4答案B11/11单选题(1分)Coin is heads with probability 1/3 and tails with probability 2/3. The expectation of independent flips until first heads is _____.A1B2C3DO(log n)答案C。
《算法设计与分析》考试题目及答案
![《算法设计与分析》考试题目及答案](https://img.taocdn.com/s3/m/c131ff76cf84b9d528ea7a63.png)
《算法分析与设计》期末复习题一、选择题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)策略,从根结点出发搜索解空间树。
算法设计与分析期末考试卷及答案a
![算法设计与分析期末考试卷及答案a](https://img.taocdn.com/s3/m/8efb44c84a7302768e9939d7.png)
算法设计与分析期末考试卷及答案a-CAL-FENGHAI.-(YICAI)-Company One1考生 信 息 栏 ______学院______系______ 专业 ______年级姓名______学号__装订线考生 信息栏______学院______系______ 专业 ______年级姓名______学号_装订线pro2(n) ex1(n/2) end if return end ex1 3.用Floyd 算法求下图每一对顶点之间的最短路径长度,计算矩阵D 0,D 1,D 2和D 3,其中D k [i, j]表示从顶点i 到顶点j 的不经过编号大于k 的顶点的最短路径长度。
三.算法填空题(共34分) 1.(10分)设n 个不同的整数按升序存于数组A[1..n]中,求使得A[i]=i 的下标i 。
下面是求解该问题的分治算法。
算法 SEARCH 输入:正整数n ,存储n 个按升序排列的不同整数的数组A[1..n]。
输出:A[1..n]中使得A[i]=i 的一个下标i ,若不存在,则输出 no solution 。
i=find ( (1) ) if i>0 then output i else output “no solution ” end SEARCH 过程 find (low, high) // 求A[low..high] 中使得A[i]=i 的一个下标并返回,若不存在,考生 信息栏______学院______系______ 专业 ______年级姓名______学号_____装订线《算法设计与分析》期考试卷(A)标准答案一. 填空题:1. 元运算 考 生 信息栏______学院______系______ 专业 ______年级姓名______学号_____装订线2. O3. ∑∈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))(5) f(n)=Θ(g(n))阶最低的函数是:100阶最高的函数是:n 32. 该递归算法的时间复杂性T(n)满足下列递归方程:⎩⎨⎧>+===1n ,n log T(n/2)T(n)1n , 1T(n)2 将n=k 2, a=1, c=2, g(n)=n log 2, d=1代入该类递归方程解的一般形式得: T(n)=1+∑-=1k 0i i 22n log =1+k n log 2-∑-=1k 0i i =1+ k n log 2-2)1k (k -=n log 2122+n log 212+1 所以,T(n)= n log 2122+n log 212+1=)(log 2n Θ。
《算法设计与分析》期末复习题
![《算法设计与分析》期末复习题](https://img.taocdn.com/s3/m/85ebc614a8114431b90dd8f3.png)
填空1.直接或间接地调用自身的算法称为 递归算法 。
2.算法的复杂性是 算法效率 的度量,是评价算法优劣的重要依据。
3.以广度优先或以最小耗费方式搜索问题解的算法称为 分支限界法 。
4.回溯法解题的显著特点是在搜索过程中动态产生问题的解空间。
在任何时刻,算法只保存从根结点到当前扩展结点的路径。
如果解空间树中从根结点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为 O (h(n)) 。
5.人们通常将问题的解决方案分为两大类:一类是可以通过执行若干个步骤就能得出问题结论的,叫做 算法 方案;另一类是不能通过若干个步骤直截了当地得出结论,而是需要反复验证才能解决的,叫做 启发式 方案。
6.算法就是一组有穷的 规则 ,它们规定了解决某一特定类型问题的 一系列运算 。
7.在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模型。
3个基本计算模型是 随机存取机RAM 、 随机存取存储程序机RASP 、 图灵机 。
8.快速排序算法的性能取决于 划分的对称性 。
9.计算机的资源最重要的是 时间资源 和 空间 资源。
因而, 算法的复杂性有 时间复杂度 和 空间复杂度 之分。
10.贪心算法总是做出在当前看来 最优 的选择。
也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的 局部最优 。
11.许多可以用贪心算法求解的问题一般具有2个重要的性质: 贪心选择 性质和 最优子结构 性质。
12.常见的两种分支限界法为 队列式(FIFO )分支限界 和 优先队列式分支限界 。
13.解决0/1背包问题可以使用动态规划、回溯法和分支限界法,其中需要排序的是 回溯法、分支限界法 ,不需要排序的是 动态规划 。
14.f ( n ) = 6 × 2n + n 2,f(n)的渐进性态f ( n ) = O ( 2n )。
15.对于含有n 个元素的排列树问题,最好情况下计算时间复杂性为 ,最坏情况下计算时间复杂性为 n! 。
(完整版)算法设计与分析期末考试卷及答案a
![(完整版)算法设计与分析期末考试卷及答案a](https://img.taocdn.com/s3/m/18af65ab5f0e7cd18525367f.png)
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站。
(完整)算法设计与分析期末试题_考试版
![(完整)算法设计与分析期末试题_考试版](https://img.taocdn.com/s3/m/852446f2a6c30c2258019e2e.png)
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·期盘覆盖用分治策略,可以设计解棋盘问题的一个简捷的算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《算法分析与设计》期末复习题一、选择题1.应用Johnson法则的流水作业调度采用的算法是(D)A. 贪心算法2.Hanoi塔问题如下图所示。
现要求将塔座A上的的所有圆盘移到塔座B上,并仍按同样顺序叠置。
移动圆盘时遵守Hanoi塔问题的移动规则。
由此设计出解Hanoi塔问题的递归算法正确的为:(B)B. 分支限界法C.分治法D. 动态规划算法 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]的个数。
F. 计算约束函数constraint的时间;11. 常见的两种分支限界法为(D)A. 广度优先分支限界法与深度优先分支限界法;B. 队列式(FIFO)分支限界法与堆栈式分支限界法;C. 排列树法与子集树法;D. 队列式(FIFO)分支限界法与优先队列式分支限界法;12. k带图灵机的空间复杂性S(n)是指(B)A. k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最大方格数。
B. k带图灵机处理所有长度为n的输入时,在k条带上所使用过的方格数的总和。
C. k带图灵机处理所有长度为n的输入时,在k条带上所使用过的平均方格数。
D. k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最小方格数。
13. NP类语言在图灵机下的定义为(D)A. NP={L|L是一个能在非多项式时间内被一台NDTM所接受的语言};B. NP={L|L是一个能在多项式时间内被一台NDTM所接受的语言};C. NP={L|L是一个能在多项式时间内被一台DTM所接受的语言};D. NP={L|L是一个能在多项式时间内被一台NDTM所接受的语言};14. 记号O的定义正确的是(A)。
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,存在正数和n0 >0使得对所有n≥n0有:0 ≤f(n)<cg(n) };D. O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0有:0 ≤cg(n) < f(n) };15. 记号Ω的定义正确的是(B)。
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. (g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0有:0 ≤f(n)<cg(n) };D. (g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0有:0 ≤cg(n) < f(n) };二、填空题21. 下面程序段的所需要的计算时间为( O(n ) )。
2. 有11个待安排的活动,它们具有下表所示的开始时间与结束时间,如果以贪心算法求解这些活动的最优安排(即为活动安排问题:在所给的活动集合中选出最大的相容活动子集合),得到的最大相容活动子集合为活动( {1,4,8,11} )。
3. 所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到)。
4. 所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。
5. 回溯法是指(具有限界函数的深度优先生成法)。
6. 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。
在任何时刻,算法只保存从根结点到当前扩展结点的路径。
如果解空间树中从根结点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为(O(h(n)))。
7. 回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。
8. 用回溯法解0/1背包问题时,该问题的解空间结构为(子集树)结构。
9.用回溯法解批处理作业调度问题时,该问题的解空间结构为(排列树)结构。
10.用回溯法解0/1背包问题时,计算结点的上界的函数如下所示,请在空格中填入合适的内容:i S[i] f[i]1 1 42 3 53 0 64 5 75 3 86 5 97 6 108 8 119 8 1210 2 1311 12 1411. 用回溯法解布线问题时,求最优解的主要程序段如下。
如果布线区域划分为n m的方格阵列,扩展每个结点需O(1)的时间,L为最短布线路径的长度,则算法共耗时 ( O(mn) ),构造相应的最短距离需要(O(L))时间。
12. 用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn))。
13. 旅行售货员问题的解空间树是(排列树)。
三、证明题1. 一个分治法将规模为n的问题分成k个规模为n/m的子问题去解。
设分解阀值n0=1,且adhoc解规模为1的问题耗费1个单位时间。
再设将原问题分解为k 个子问题以及用merge将k个子问题的解合并为原问题的解需用f(n)个单位时间。
用T(n)表示该分治法解规模为|P|=n的问题所需的计算时间,则有:T(n)=⎨⎧O(1)n=1⎩kT(n/m)+f(n)n>1logn-1通过迭代法求得T(n)的显式表达式为:T(n)=n试证明T(n)的显式表达式的正确性。
logmk+∑j=0mkf(n/m) jj2. 举反例证明0/1背包问题若使用的算法是按照pi/wi的非递减次序考虑选择的物品,即只要正在被考虑的物品装得进就装入背包,则此方法不一定能得到最优解(此题说明0/1背包问题与背包问题的不同)。
证明:举例如:p={7,4,4},w={3,2,2},c=4时,由于7/3最大,若按题目要求的方法,只能取第一个,收益是7。
而此实例的最大的收益应该是8,取第2,3 个。
3. 求证:O(f(n))+O(g(n)) = O(max{f(n),g(n)}) 。
证明:对于任意f1(n)∈ O(f(n)) ,存在正常数c1和自然数n1,使得对所有n≥n1,有f1(n)≤ c1f(n) 。
类似地,对于任意g1(n) ∈ O(g(n)) ,存在正常数c2和自然数n2,使得对所有n≥n2,有g1(n) ≤c2g(n) 。
令c3=max{c1, c2}, n3 =max{n1, n2},h(n)= max{f(n),g(n)} 。
则对所有的n ≥ n3,有f1(n) +g1(n) ≤ c1f(n) + c2g(n)≤ c3f(n) + c3g(n)= c3(f(n) + g(n))≤ c32 max{f(n),g(n)}= 2c3h(n) = O(max{f(n),g(n)}) .4. 求证最优装载问题具有贪心选择性质。
(最优装载问题:有一批集装箱要装上一艘载重量为c的轮船。
其中集装箱i的重量为Wi。
最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。
设集装箱已依其重量从小到大排序,(x1,x2,…,xn)是最优装载问题的一个最优解。
又设k=min{i|xi=1} 。
如果给定的最优装载问题有解,1≤i≤n则有1≤k≤n。
)证明:四、解答题1. 机器调度问题。
问题描述:现在有n件任务和无限多台的机器,任务可以在机器上得到处理。
每件任务的开始时间为si,完成时间为fi,si<fi 。
[si,fi]为处理任务i的时间范围。
两个任务i,j重叠指两个任务的时间范围区间有重叠,而并非指i,j的起点或终点重合。
例如:区间[1,4]与区间[2,4]重叠,而与[4,7]不重叠。
一个可行的任务分配是指在分配中没有两件重叠的任务分配给同一台机器。
因此,在可行的分配中每台机器在任何时刻最多只处理一个任务。
最优分配是指使用的机器最少的可行分配方案。
问题实例:若任务占用的时间范围是{[1,4],[2,5],[4,5],[2,6],[4,7]},则按时完成所有任务最少需要几台机器?(提示:使用贪心算法)画出工作在对应的机器上的分配情况。
⎧f(n)=bf(n-1)+g(n)已知非齐次递归方程:⎨f(0)=c⎩2. ,其中,b、c是常数,ng(n)是n的某一个函数。
则f(n)的非递归表达式为:f(n)=cb+∑bn-ig(i)。
ni=1现有Hanoi塔问题的递归方程为:⎨⎩⎧h(n)=2h(n-1)+1h(1)=1,求h(n)的非递归表达式。
解:利用给出的关系式,此时有:b=2, c=1, g(n)=1, 从n递推到1,有:n-1h(n)=cb=2n-1nn-1+∑bi=1n-1-ig(i)+2n-2+...+2+2+12=2-13. 单源最短路径的求解。
问题的描述:给定带权有向图(如下图所示)G =(V,E),其中每条边的权是非负实数。
另外,还给定V中的一个顶点,称为源。
现在要计算从源到所有其它各顶点的最短路长度。