《算法分析与设计》期末考试复习题纲(完整版)

合集下载

《算法分析与设计》期末测验复习题纲(完整版)

《算法分析与设计》期末测验复习题纲(完整版)

《算法分析与设计》期末测验复习题纲(完整版)————————————————————————————————作者:————————————————————————————————日期:《算法分析与设计》期末复习题一、选择题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 )。

算法分析与设计考试复习题及参考答案

算法分析与设计考试复习题及参考答案
一、简要回答下列问题 : 1. 算法重要特性是什么? 2. 算法分析的目的是什么? 3. 算法的时间复杂性与问题的什么因素相关? 4. 算法的渐进时间复杂性的含义? 5. 最坏情况下的时间复杂性和平均时间复杂性有什么不同? 6. 简述二分检索(折半查找)算法的基本过程。 7. 背包问题的目标函数和贪心算法最优化量度相同吗? 8. 采用回溯法求解的问题,其解如何表示?有什么规定? 9. 回溯法的搜索特点是什么? 10. n皇后问题回溯算法的判别函数place的基本流程是什么? 11. 为什么用分治法设计的算法一般有递归调用? 12. 为什么要分析最坏情况下的算法时间复杂性? 13. 简述渐进时间复杂性上界的定义。 14. 二分检索算法最多的比较次数? 15. 快速排序算法最坏情况下需要多少次比较运算? 16. 贪心算法的基本思想? 17. 回溯法的解(x1,x2,……xn)的隐约束一般指什么? 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); endif end MERGESORT 2、 procedure S1(P,W,M,X,n) i←1; a←0
15..最坏情况下快速排序退化成冒泡排序,需要比较n2次。 16. 是一种依据最优化量度依次选择输入的分级处理方法。基本思 路是:首先根据题意,选取一种量度标准;然后按这种量度标准对这n 个输入排序,依次选择输入量加入部分解中。如果当前这个输入量的加 入,不满足约束条件,则不把此输入加到这部分解中。 17.回溯法的解(x1,x2,……xn)的隐约束一般指个元素之间应满 足的某种关系。 18. 将数组一分为二,分别对每个集合单独排序,然后将已排序的 两个序列归并成一个含n个元素的分好类的序列。如果分割后子问题还 很大,则继续分治,直到一个元素。 19.快速排序的基本思想是在待排序的N个记录中任意取一个记录, 把该记录放在最终位置后,数据序列被此记录分成两部分。所有关键字 比该记录关键字小的放在前一部分,所有比它大的放置在后一部分,并 把该记录排在这两部分的中间,这个过程称作一次快速排序。之后重复 上述过程,直到每一部分内只有一个记录为止。 20.在定义一个过程或者函数的时候又出现了调用本过程或者函数 的成分,既调用它自己本身,这称为直接递归。如果过程或者函数P调 用过程或者函数Q,Q又调用P,这个称为间接递归。消除递归一般要用 到栈这种数据结构。 21.哈密顿环是指一条沿着图G的N条边环行的路径,它的访问每个 节点一次并且返回它的开始位置。 22.当前选择的节点X[k]是从未到过的节点,即X[k]≠X[i](i=1,2, …,k-1),且C(X[k-1], X[k])≠∞,如果k=-1,则C(X[k], X[1]) ≠∞。 23. 思路是:最初生成树T为空,依次向内加入与树有最小邻接边 的n-1条边。处理过程:首先加入最小代价的一条边到T,根据各节点到 T的邻接边排序,选择最小边加入,新边加入后,修改由于新边所改变 的邻接边排序,再选择下一条边加入,直至加入n-1条边。 二、复杂性分析 1、 递归方程

算法分析设计复习提纲

算法分析设计复习提纲

1、二分搜索算法是利用( A )实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( A )。

A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的一搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法5. 回溯法解旅行售货员问题时的解空间树是( A )。

A、子集树B、排列树C、深度优先生成树D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的( B )。

A、备忘录法B、动态规划法C、贪心法D、回溯法7、衡量一个算法好坏的标准是(C )。

A 运行速度快B 占用空间少C 时间复杂度低D 代码短8、以下不可以使用分治法求解的是(D )。

A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题11.下面不是分支界限法搜索方式的是( D )。

A、广度优先B、最小耗费优先C、最大效益优先D、深度优先12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。

A、备忘录法B、动态规划法C、贪心法D、回溯法13.备忘录方法是那种算法的变形。

( B )A、分治法B、动态规划法C、贪心法D、回溯法14.哈弗曼编码的贪心算法所需的计算时间为( B )。

A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)16.最长公共子序列算法利用的算法是( B )。

A、分支界限法B、动态规划法C、贪心法D、回溯法18.下面是贪心算法的基本要素的是( C )。

A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解19.回溯法的效率不依赖于下列哪些因素( D )A.满足显约束的值的个数B. 计算约束函数的时间C. 计算限界函数的时间D. 确定解空间的时间20.下面哪种函数是回溯法中为避免无效搜索采取的策略( B )A.递归函数 B.剪枝函数C。

随机数函数 D.搜索函数24. ( D )是贪心算法与动态规划算法的共同点。

计算机算法设计与分析期末复习资料

计算机算法设计与分析期末复习资料

计算机算法设计与分析期末复习资料一填空题(20x1=20分)1.当有多个算法来解决集合问题时,选择算法的主要原则是选择复杂度最低的算法。

2.函数本身定义的函数是递归函数。

该算法适用于求解动态规划问题。

4.贪心算法的两个基本要素是最优子结构性质、贪心选择性质。

5.在搜索解空间树时,回溯方法通常使用深度优先的方法来提高搜索效率,以避免无效搜索。

6.根据不同的求解目标,分枝定界法和回溯法分别通过广度优先遍历或最小代价优先和深度优先搜索解空间树。

7.分支界限法和回溯法主要区别在于求解目标和搜索方式不同。

8.在执行分支定界法时,通常使用该方法来实现最大优先级队列。

9.依据求解所花费的时间和所得到的结果不同,随机化算法大致分为数值随机化算法、蒙特卡罗算法、拉斯维加斯算法和舍伍德算法四类。

10.产生伪随机数最常用的方法是线性同余法。

11.线性规划算法中旋转轴变化的目的是调整基准内变量和基准外变量的位置。

12.在最大网络流问题中,增广路径是剩余网络中容量大于0的路径。

13.应用于动态规划的待解决问题的两个基本要素是:。

14.算法必须满足的四个特征是输入、输出、确定性和有限性。

15.算法复杂性依赖于、、三个方面的复杂因素。

16.实现递归调用的关键是17.动态规划算法解决问题的重要线索是问题的性质。

18.最优子结构性质是贪婪算法的关键特征。

19.分支界限法的求解目标是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。

20.有两种常见的解空间树:子集树和置换树。

21.分支界限算法依据其从和节点表中选择获得下一扩展节点的不同方式被分为22.对于任何约束标准线性规划问题,只要基本变量设置为0,就可以得到一个解。

三概念题(6x2=12分)1.算法复杂度:指算法运行所需的计算机资源量。

需要时间资源的量称为时间复杂度,需要空间资源源的量称为空间复杂性。

2.递归算法:直接或间接调用自身的算法称为递归算法。

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

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

《算法分析与设计》期末试题及参考答案《算法分析与设计》期末试题及参考答案一、简要回答下列问题: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)一定合理。

(完整版)算法设计与分析期末考试卷及答案a

(完整版)算法设计与分析期末考试卷及答案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.算法2.程序3.递归函数4.子问题的重叠性质5.队列式分支限界法6.多机调度问题7.最小生成树 二、简答题:1.备忘录方法和动态规划算法相比有何异同?简述之。

2.简述回溯法解题的主要步骤。

3.简述动态规划算法求解的基本要素。

4.简述回溯法的基本思想。

5.简要分析在递归算法中消除递归调用,将递归算法转化为非递归算法的方法。

6.简要分析分支限界法与回溯法的异同。

7.简述算法复杂性的概念,算法复杂性度量主要指哪两个方面? 8.贪心算法求解的问题主要具有哪些性质?简述之。

9.分治法的基本思想是什么?合并排序的基本思想是什么?请分别简述之。

10.简述分析贪心算法与动态规划算法的异同。

三、算法编写及算法应用分析题:1.已知有3个物品:(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10),背包的容积M=20,根据0-1背包动态规划的递推式求出最优解。

2.按要求完成以下关于排序和查找的问题。

①对数组A={15,29,135,18,32,1,27,25,5},用快速排序方法将其排成递减序。

②请描述递减数组进行二分搜索的基本思想,并给出非递归算法。

③给出上述算法的递归算法。

④使用上述算法对①所得到的结果搜索如下元素,并给出搜索过程:18,31,135。

3.已知1()*()i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=12,r 5=5,r 6=50,r 7=6,求矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序(要求给出计算步骤)。

4.根据分枝限界算法基本过程,求解0-1背包问题。

已知n=3,M=20,(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10)。

算法设计与分析(期末总复习)

算法设计与分析(期末总复习)

复习一、简答题(每小题5分,选答2题,共10分)1. 什么是算法?试说明算法设计分析过程的一般框架和主要步骤。

2. 简述非递归算法时间效率分析的通用方案。

3. 简述递归算法时间效率的通用方案。

4. 简述蛮力法、分治法、减治法,变治法、时空权衡、动态规划、贪婪技术、迭代改进八种算法设计技术中至少三种技术基本思想或原理。

二、分析题(每小题10分,共20分)1. 考虑下面的算法。

P52算法Mystery(n) //输入:非负整数nS=0for i 1 to n doS S + i*iReturn Sa.该算法求的是什么?b.它的基本操作是什么?c.该基本操作执行了多少次?d.该算法的效率类型是什么?2. 考虑下面的递归算法。

P52算法Secret(A[0..n-1]) //输入:包含n个实数的数组A[0..n-1]minval A[0]; maxval A[0]for i 1 to n-1 doif A[i] < minvalminval A[i]if A[i] > maxvalmaxval A[i]return maxval – minvala.该算法求的是什么?b.它的基本操作是什么?c.该基本操作执行了多少次?d.该算法的效率类型是什么?3. 考虑下面的递归算法P59算法Q(n) //输入:正整数if n=1 return 1else return Q(n-1) + 2*n -1a. 建立该函数值的递推关系并求解,以确定该算法计算的是什么;b. 建立该算法所做的乘法运算次数的递推关系并求解;c. 建立该算法所做的加减运算次数的递推关系并求解。

三、算法设计题(每小题10分,共20分)1. 应用快速排序对序列E,X,A,M,P,L,E按照字母顺序排序。

并画出相应的递归调用树。

(4章分治法)P1022. 对于下面的有向图,应用基于DFS的算法来解拓扑排序问题。

(5章减治法)P133.3. 用自底向上算法为列表1, 8, 6, 5, 3, 7, 4进行堆排序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《算法分析与设计》期末复习题一、选择题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 )。

A.LCS问题 B.批处理作业问题C.0-1背包问题 D.哈夫曼编码问题13.用回溯法求解最优装载问题时,若待选物品为m种,则该问题的解空间树的结点个数为()。

A.m! B.2m+1C.2m+1-1 D.2m14.二分搜索算法是利用( A )实现的算法。

A.分治策略 B.动态规划法C.贪心法 D.回溯法15.下列不是动态规划算法基本步骤的是( B )。

P44A.找出最优解的性质 B.构造最优解C.算出最优解(应该是最优值) D.定义最优解16.下面问题( B )不能使用贪心法解决。

A.单源最短路径问题 B.N皇后问题C.最小花费生成树问题 D.背包问题17.使用二分搜索算法在n个有序元素表中搜索一个特定元素,在最好情况和最坏情况下搜索的时间复杂性分别为( A )。

P17A.O(1),O(logn) B.O(n),O(logn)C.O(1),O(nlogn) D.O(n),O(nlogn)18.优先队列式分支限界法选取扩展结点的原则是( C )。

P162A.先进先出 B.后进先出C.结点的优先级 D.随机19.下面不是分支界限法搜索方式的是( D )。

P161A.广度优先 B.最小耗费优先C.最大效益优先 D.深度优先20.分支限界法解最大团问题时,活结点表的组织形式是( B )。

A.最小堆 B.最大堆C.栈 D.数组21.下列关于计算机算法的描述不正确的是(C)。

P1A.算法是指解决问题的一种方法或一个过程B.算法是若干指令的有穷序列C. 算法必须要有输入和输出D.算法是编程的思想22.下列关于凸多边形最优三角剖分问题描述不正确的是( A )。

A.n+1个矩阵连乘的完全加括号和n个点的凸多边形的三角剖分对应B.在有n个顶点的凸多边形的三角剖分中,恰有n-3条弦C.该问题可以用动态规划法来求解D.在有n个顶点的凸多边形的三角剖分中,恰有n-2个三角形23.动态规划法求解问题的基本步骤不包括( C )。

P44A.递归地定义最优值B.分析最优解的性质,并刻画其结构特征C.根据计算最优值时得到的信息,构造最优解 (可以省去的) D.以自底向上的方式计算出最优值24.分治法所能解决的问题应具有的关键特征是( C )。

P16A.该问题的规模缩小到一定的程度就可以容易地解决B.该问题可以分解为若干个规模较小的相同问题C.利用该问题分解出的子问题的解可以合并为该问题的解D.该问题所分解出的各个子问题是相互独立的25.下列关于回溯法的描述不正确的是( D )。

P114A.回溯法也称为试探法B.回溯法有“通用解题法”之称C.回溯法是一种能避免不必要搜索的穷举式搜索法D.用回溯法对解空间作深度优先搜索时只能用递归方法实现26.常见的两种分支限界法为( D )。

P161A. 广度优先分支限界法与深度优先分支限界法;B. 队列式(FIFO)分支限界法与堆栈式分支限界法;C. 排列树法与子集树法;D. 队列式(FIFO)分支限界法与优先队列式分支限界法;二、填空题1.f(n)=3n2+10的渐近性态f(n)= O( n2 ),g(n)=10log3n的渐近性态g(n)= O( n )。

2.一个“好”的算法应具有正确性、可读性、健壮性和高效率和低存储量需求等特性。

3. 算法的时间复杂性函数表示为 C=F(N,I,A) ,分析算法复杂性的目的在于比较求解同意问题的两个不同算法的效率 的效率。

4. 构成递归式的两个基本要素是 递归的边界条件 和 递归的定义 。

5. 单源最短路径问题可用 分支限界法 和 贪心算法 求解。

6. 用分治法实现快速排序算法时,最好情况下的时间复杂性为 O(nlogn) ,最坏情况下的时间复杂性为 O(n^2) ,该算法所需的时间与 运行时间 和 划分 两方面因素有关。

P267. 0-1背包问题的解空间树为 完全二叉 树;n 后问题的解空间树为 排列 树; 8. 常见的分支限界法有队列式(FIFO )分支限界法和优先队列式分支限界法。

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

10. 分支限界法解最大团问题时,活结点表的组织形式是 最大堆 ;分支限界法解单源最短路径问题时,活结点表的组织形式是 最小堆 。

三、算法填空题1. 递归求解Hanoi 塔问题/阶乘问题。

例1 :阶乘函数n! P12 阶乘的非递归方式定义:试写出阶乖的递归式及算法。

递归式为: 边界条件 递归方程递归算法:int factorial (int n){ if (n==0) return 1; 递归出口return n * factorial (n-1); 递归调用 }例2:用递归技术求解Hanoi 塔问题,Hanoi 塔的递归算法。

P1512)2()1(!⨯⨯⨯-⨯-⨯= n n n n 00)!1(1!>=⎩⎨⎧-=n n n n nv1.0 可编辑可修改其中Hanoi (int n, int a, int c, int b)表示将塔座A上的n个盘子移至塔座C,以塔座B为辅助。

Move(a,c)表示将塔座a上编号为n的圆盘移至塔座c上。

void hanoi (int n, int a, int c, int b){if (n > 0){hanoi(n-1, a, b, c);move(a,c);hanoi(n-1, b, c, a);}}2.用分治法求解快速排序问题。

快速排序算法 P25 、作业、课件第2章(2)42页-50页template<class Type>void 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);}}Partition函数的具体实现template<class Type>int Partition (Type a[], int p, int r){int i = p, j = r + 1;Type x=a[p];D=i;Q[i-1].d=*p[i]/w[i];P+=p[i]; W+=w[i];}if(W<=c) D]; [i]=w[Q[i-1].ID]; }=0; =0; =c;=n; =0; (1);delete[] Q; delete[] ;delete[] ; return ;}例2:批处理作业调度课件第5章(2)P2-5问题描述,课本P125-127解空间:排列树算法描述:class Flowshop{static int [][] m, 2A5A1 Abestp=0,将物体的序号按价值体积比排序结果是(2,1,3,4,5)N21345W515252730P1230444650P/W2(2). 根据排序得到部分解(1,1,1,0),估计当前部分解的价值b,86+(50-45)*=, b >bestp.(3). 继续向下搜索生成结点F,得到可行解(1,1,1,0,0),得到价值为86,更新bestp=86(如图第3步)第3步第5步第8步(4). 回溯:沿E回溯到左孩子D,生成相应右孩子G,得到部分解( 1,1,0,1 ),此时b=b>bestp,可以生成右子树(第4步在第5步的基础上没有H和I的图形)(5). 继续生成结点H,I,得到可行解( 1,1,0,1,0 ),价值为88,更新bestp=88(如图第5步)(6). 回溯H生成J,得到部分解( 1,1,0,0 ),估计部分解b=92>88(第6步在第8步的基础上没有K和L的图形)(7). 继续生成结点K,得到可行解( 1,1,0,0, 1 ),价值为92,更新bestp=92(第7步在第8步的基础上没有L的图形)(8). K是左孩子,生成其对应的右孩子L,得到可行解( 1,1,0,0,0) (如图第8步)(9). 回溯,沿结点L向上回溯到结点B,生成结点M,得到部分解 (1,0), 估计部分解b=90<92,回溯(第9步在第10步的基础上没有N的图形)(10). 向上继续回溯生成结点N,得到部分解(0),此时得到的b=74+10*(46/27) =<92,回溯,此时已回到根结点,结束。

最优解( 1,1,0,0, 1 ),价值为92. (如图第10步)练习n=8, M=110,W=( 1, 11,21,23,33,43,45,55 )P=(11,21,31,33,43,53,55,65 )用回溯法求此0-1背包问题的最优解。

最优装载问题 P119 课件第P37- P54页假定n= 4,w= [ 8 , 6 , 2 , 3 ],c1 = c2 =12.试根据改进后的最优装载算法找出最优装载量及相应的最优装载方案。

相关文档
最新文档