算法分析与设计部分含计算的复习题及参考答案

合集下载

《算法分析与设计》期末复习题[1]

《算法分析与设计》期末复习题[1]

一、选择题1.一个.java文件中可以有()个public类。

A.一个B.两个C.多个D.零个2.一个算法应该是()A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C3.用计算机无法解决“打印所有素数”的问题,其原因是解决该问题的算法违背了算法特征中的()A.唯一性B.有穷性C.有0个或多个输入D.有输出4.某校有6位学生参加学生会主席竞选,得票数依次为130,20,98,15,67,3。

若采用冒泡排序算法对其进行排序,则完成第二遍时的结果是()A.3,15,130,20,98,67B.3,15,20,130,98,67C.3,15,20,67,130,98 D.3,15,20,67,98,1305.下列关于算法的描述,正确的是()A.一个算法的执行步骤可以是无限的B.一个完整的算法必须有输出C.算法只能用流程图表示D.一个完整的算法至少有一个输入6.Java Application源程序的主类是指包含有()方法的类。

A、main方法B、toString方法C、init方法D、actionPerfromed方法7.找出满足各位数字之和等于5的所有三位数可采用的算法思路是()A.分治法B.减治法C.蛮力法D.变治法8.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。

A、import java.awt.* ;B、import java.applet.Applet ;C、import java.io.* ;D、import java.awt.Graphics ;9.计算某球队平均年龄的部分算法流程图如图所示,其中:c用来记录已输入球员的人数,sum用来计算有效数据之和,d用来存储从键盘输入的球员年龄值,输入0时表示输入结束。

图中空白处理框①和②处应填入的是()A.①sum ←sum + d B.①sum ←sum + c②c ←c + 1②c ←c + 1C.①sum ←sum + d D.①sum ←sum + c②d ←d + 1 ②d ←d + 110.报名参加冬季越野赛跑的某班5位学生的学号是:5,8,11,33,45。

计算机算法与设计复习题(含答案)

计算机算法与设计复习题(含答案)

1、一个算法的优劣可以用(时间复杂度)与(空间复杂度)与来衡量。

2、回溯法在问题的解空间中,按(深度优先方式)从根结点出发搜索解空间树。

3、直接或间接地调用自身的算法称为(递归算法)。

4、 记号在算法复杂性的表示法中表示(渐进确界或紧致界)。

5、在分治法中,使子问题规模大致相等的做法是出自一种(平衡(banlancing)子问题)的思想。

6、动态规划算法适用于解(具有某种最优性质)问题。

7、贪心算法做出的选择只是(在某种意义上的局部)最优选择。

8、最优子结构性质的含义是(问题的最优解包含其子问题的最优解)。

9、回溯法按(深度优先)策略从根结点出发搜索解空间树。

10、拉斯维加斯算法找到的解一定是(正确解)。

11、按照符号O的定义O(f)+O(g)等于O(max{f(n),g(n)})。

12、二分搜索技术是运用(分治)策略的典型例子。

13、动态规划算法中,通常不同子问题的个数随问题规模呈(多项式)级增长。

14、(最优子结构性质)和(子问题重叠性质)是采用动态规划算法的两个基本要素。

15、(最优子结构性质)和(贪心选择性质)是贪心算法的基本要素。

16、(选择能产生最优解的贪心准则)是设计贪心算法的核心问题。

17、分支限界法常以(广度优先)或(以最小耗费(最大效益)优先)的方式搜索问题的解空间树。

18、贪心选择性质是指所求问题的整体最优解可以通过一系列(局部最优)的选择,即贪心选择达到。

19、按照活结点表的组织方式的不同,分支限界法包括(队列式(FIFO)分支限界法)和(优先队列式分支限界法)两种形式。

20、如果对于同一实例,蒙特卡洛算法不会给出两个不同的正确解答,则称该蒙特卡洛算法是(一致的)。

21、哈夫曼编码可利用(贪心法)算法实现。

22概率算法有数值概率算法,蒙特卡罗(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法和舍伍德(Sherwood)算法23以自顶向下的方式求解最优解的有(贪心算法)24、下列算法中通常以自顶向下的方式求解最优解的是(C)。

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

《算法设计与分析》考试题目及答案(DOC)
}
Hanoi 塔
D. void hanoi(int n, int C, int A, int B) { 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. 预排序与递归调用
(排列树)算法框架。 8. 用回溯法解 0/1 背包问题时,该问题的解空间结构为(子集树)结构。 9.用回溯法解批处理作业调度问题时,该问题的解空间结构为(排列树)结
构。 10.用回溯法解 0/1 背包问题时,计算结点的上界的函数如下所示,请在空
格中填入合适的内容:
Typep Knap<Typew, Typep>::Bound(int i) {// 计算上界
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.重叠子问题性质与贪心选择性质
《算法分析与设计》期末复习 法则的流水作业调度采用的算法是(D)
A. 贪心算法
B. 分支限界法 C.分治法
D. 动态规划算法
2.Hanoi 塔问题如下图所示。现要求将塔座 A 上的的所有圆盘移到塔座 B 上, 并仍按同样顺序叠置。移动圆盘时遵守 Hanoi 塔问题的移动规则。由此设计出 解 Hanoi 塔问题的递归算法正确的为:(B)

算法设计与分析复习题整理 (1)

算法设计与分析复习题整理 (1)

一、基本题:算法:1、程序是算法用某种程序设计语言的具体实现。

2、算法就是一组有穷的序列(规则) ,它们规定了解决某一特定类型问题的一系列运算。

3、算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。

4、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。

5、算法满足的性质:输入、输出、确定性、有限性。

6、衡量一个算法好坏的标准是时间复杂度低。

7、算法运行所需要的计算机资源的量,称为算法复杂性,主要包括时间复杂性和空间复杂性。

8、任何可用计算机求解的问题所需的时间都与其规模有关。

递归与分治:9、递归与分治算法应满足条件:最优子结构性质与子问题独立。

10、分治法的基本思想是首先将待求解问题分解成若干子问题。

11、边界条件与递归方程是递归函数的两个要素。

12、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。

13、将一个难以直接解决的大问题,分解成一些规模较小的相同问题,以便各个击破。

这属于分治法的解决方法。

14、Strassen矩阵乘法是利用分治策略实现的算法。

15、大整数乘积算法是用分治法来设计的。

16、二分搜索算法是利用分治策略实现的算法。

动态规划:17、动态规划算法的两个基本要素是最优子结构性质和重叠子问题性质。

18、下列算法中通常以自底向上的方式求解最优解的是动态规划法。

19、备忘录方法是动态规划算法的变形。

20、最优子结构性质是贪心算法与动态规划算法的共同点。

21、解决0/1背包问题可以使用动态规划、回溯法,其中不需要排序的是动态规划,需要排序的是回溯法。

贪心算法:22、贪心算法总是做出在当前看来最好的选择。

也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的局部最优解。

23、最优子结构性质是贪心算法与动态规划算法的共同点。

24、背包问题的贪心算法所需的计算时间为 O(nlogn) 。

回溯法:25、回溯法中的解空间树结构通常有两种,分别是子集树和排列树。

中南大学现代远程教育课程考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案《算法分析与设计》一简答题1.算法的复杂性分析主要是分析算法的什么耗费情况?2.算法的重要特性是什么?3.算法的时间复杂度用什么计量?4.用比较树模型描述三个数排序的过程。

5.分治法的基本思想。

6.二分检索算法为什么可以提高查找的效率?7.简述顺序选择select算法的基本流程。

8.简述顺序选择select2算法的改进思路。

9.简述快速排序的基本思想。

10.快速排序算法的最坏时间复杂性和平均时间复杂性函数。

11.快速排序算法怎样抽取分割元素?12.partition怎样将数组划分成3段?13.分治合并排序的是怎样分治的?14.分治合并排序的二分归并过程在最坏情况下花费多少时间?15.分治合并排序的二分归并过程在最好情况下花费多少时间?16.MaxMin算法是怎样分治的?17.贪心法的基本思路是什么?18.用贪心法求解的问题有什么特点?19.背包问题的目标函数是什么,最优量度是什么?20.带限期的作业调度的贪心策略是什么?约束条件是什么?21.说明n皇后问题的解(x1,x2,….,x n)的含义。

22.简述n皇后算法的place函数的功能。

23.简述动态规划方法所运用最优化原理。

24.用多段图说明最优化原理。

二解释下列动态规划优解的一般递归形式。

1)0/1背包2)货郎担问题3)流水作业调度三算法分析。

1.分析汉诺塔算法的时间复杂性。

2.计算冒泡排序算法时间复杂性的阶。

3.分析maxmin算法的时间复杂性。

4.分析分治合并排序算法的时间复杂性。

5.分析二分检索的时间复杂性。

6.背包问题贪心算法的时间复杂性。

7.快速排序的partition过程中,进行了多少次元素之间的比较。

8.多段图算法的时间复杂性。

四算法段填空。

1.MaxMin 算法Maxmin(i,j,max,min)ifthen 对两元素进行比较;return;else{maxmin(i,m,max1,min1); //其中max1和min1为解子问题1的解}2.Hanoi算法Hanoi(n,a,b,c)If n=1 thenElse{;Hanoi(n-1,b, a, c);}3.二分检索BINSRCH(A,n,x,j)low←1;high←n;while low<high do{ ________________ mid←(low+high)/2;case:x=A[mid] :j←mid; return;:x< A[mid]:_________________high←mid-1;:x> A[mid]:_________________low←mid+1;endcase}j←0;end4.快速排序Quicksort(p,q)if p>q then_____________{call partition(p,j);call _______________________call _______________________}end5.贪心方法的抽象化控制procedure GREEDY(A,n)//A(1:n)包含n个输入//solutions←;for i←1 to do{x←SELECT(A)if FEASIBLE(solution,x)then solutions←; endif}return(solution)end GREEDY6.背包问题贪心算法procedure GREEDY-KNAPSACK(P,W,M,X,n)X←0 ;cu←M ;for i←1 to n do{ if then exit endifX(i) ← _ ;cu←;}if i ≤n then X(i) ←;endifend GREEDY-KNAPSACK7.分治合并排序算法procedure MERGESORT(low,high)if low < high thenmid ←_______________________________________________________MERGE(low,mid,high)endifend MERGESORT8. 多段图动态规划算法 procedure FGRAPH(E ,k ,n ,P) 1 real COST(n),integerD(n 一1),P(k),r ,j ,k ,n 2; 3 for to 1 by -1do4 设r 是一个这样的结点,(j ,r)∈E 且使c(j ,r)+COST(r)取最小值5 COST(j)← ;6 ;7 repeat8 P(1)←1;P(k)←n ;9 for do10 P(j)←D ( P(j-1) )11 repeat12 end FGRAPH9. n 后问题递归算法procedure RNQUEENS(K)global x( 1:m ),n;for x(k)←1 to _____ doif place( k )= true thenif k = n then ________else_____________endifendifrepeatend ENQUEENS1. 写递归形式的二分检索算法2. 设计三分检索算法3. 有n 个大小相同而重量不同的集装箱,重量分别为(w1,w2,……,wn),已知货船的额定载重量为M ,Σwi>M,i=1,2,3,…,n 。

算法分析设计期末复习

算法分析设计期末复习

通过解递归方程
logm n1
T (n) nlogm k k j f (n / m j ) j0
学习要点: 理解递归的概念。 掌握设计有效算法的分治策略。 通过下面的范例学习分治策略设计技巧。 (1)二分搜索技术; (2)大整数乘法; (3)Strassen矩阵乘法; (4)棋盘覆盖; (5)合并排序和快速排序; (6)线性时间选择; (7)最接近点对问题; (8)循环赛日程表。
基本运算Oi的执行次数ei分别进行统计分析。 – T(N,I)还需进一步简化,只在某些有代表性的合法输
入中去统计相应的ei来评价其复杂性。 – 一般只考虑三种情况下的时间性:最坏情况、最好
情况和平均情况下的复杂性,分别记为Tmax(N)、 Tmin(N)和Tavg(N)
四种渐近意义下的符号
• 四种渐近意义下的符号 –O –Ω –θ –o
}
----------------------------------------------------------------------------------------
CheckNum( T , p , q , element): ▹计算T[p..q]中element出现的次数
{ cnt ← 0
• 思路二:直接统计各 元素出现的次数,用 某一线性数据结构 存储统计结果(例如 用一个辅助数组存 储统计结果,统计时 用数组下标对应相 应元素)
第三章:动态规划
动态规划算法的基本思想
• 动态规划算法的基本思想
– 其基本思想与分治算法的思想类似——分而治之 – 与分治法的不同之处
• 分解后的子问题往往不互相独立; • 采用记录表的方法来保存所有已解决问题的答案
考虑时间 资源

算法设计与分析复习题目及答案

算法设计与分析复习题目及答案

分治法1、二分搜索算法是利用(?分治策略)实现的算法。

9. 实现循环赛日程表利用的算法是(分治策略)27、Strassen矩阵乘法是利用(分治策略?)实现的算法。

34.实现合并排序利用的算法是(分治策略)。

实现大整数的乘法是利用的算法(?分治策略)。

17.实现棋盘覆盖算法利用的算法是(分治法)。

29、使用分治法求解不需要满足的条件是(子问题必须是一样的)。

不可以使用分治法求解的是(0/1背包问题)。

动态规划下列不是动态规划算法基本步骤的是(构造最优解)下列是动态规划算法基本要素的是(子问题重叠性质)。

下列算法中通常以自底向上的方式求解最优解的是(动态规划法?)备忘录方法是那种算法的变形。

(动态规划法)最长公共子序列算法利用的算法是(?动态规划法)。

矩阵连乘问题的算法可由(动态规划算法B)设计实现。

实现最大子段和利用的算法是(??动态规划法?? )。

贪心算法能解决的问题:单源最短路径问题,最小花费生成树问题,背包问题,活动安排问题,不能解决的问题:N皇后问题,0/1背包问题是贪心算法的基本要素的是(贪心选择性质和最优子结构性质)。

回溯法回溯法解旅行售货员问题时的解空间树是(排列树)。

剪枝函数是回溯法中为避免无效搜索采取的策略回溯法的效率不依赖于下列哪些因素(确定解空间的时间)分支限界法最大效益优先是(?分支界限法)的一搜索方式。

分支限界法解最大团问题时,活结点表的组织形式是(?最大堆)。

分支限界法解旅行售货员问题时,活结点表的组织形式是(最小堆)优先队列式分支限界法选取扩展结点的原则是(结点的优先级)在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( 分支限界法).从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( 栈式分支限界法)之外都是最常见的方式.(1)队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。

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

算法考试要点

算法考试要点

计算机算法复习提纲
贪心选择性质 假设 A={X1,X2,X3...............,Xn} 是 E={E1,E2,E3,........En}活动集合的最优解,E 中活动 按照结束时间非递减排序。 如果 X1=E1,A 是以贪心选择开始的。 如果 X1 !=E1,假设 B={E1,X2,X3...............,Xn} ,又因为 F1《=Fx1 并且 A 中个活动相容, 则 B 中活动也是相容的,因此 B 是一个以贪心选择开始的最优解。 最有子结构性质 E’={E2,E3,........En} A’={X2,X3...............,Xn} 假设 A’不是 E‘的最优解,B’比 A’更优, 那么 B’U{E1}=B 优于 A’U{E1}=A,即 B 是一个更优解, 与假设 A 为最优解矛盾。 贪心选择次数由数学归纳法可以证明,因此贪心算法可以求得该问题的最优解。
{ f[1][j]=g[1][j];d[1][j]=j; } for(i=2;i<=n;i++)
for(j=0;j<=m;j++)
计算机算法复习提纲
{ f[i][j]=0; for(k=0;k<=j;k++) { s=f[i-1][j-k]+g[i][k]; if(s>f[i][j]) { f[i][j]=s; }
sum++; for (int i=1; i<=n; i++)
cout << x[i] << ' '; cout << endl; }
else for (int i=1;i<=m;i++) { x[t]=i; if (Ok(t)) Backtrack(t+1); }

2021《算法数据结构》复习试题库及答案

2021《算法数据结构》复习试题库及答案

2021《算法数据结构》复习试题库及答案试题1算法设计题(每小题6分.共12分)1.请写出在循环队列上进行插入操作的算法。

要求若插入成功则返目true,否则返回else.循环队列定义如下:struet CyclicQueue {ElemTy[ae elem[M]; //M为已定义过的整型常量,表示队列数组空间长度int rear,front; //rear指向队尾元素后一个位置,front指向队头元索int tag;};注意:当front=rear且tag=0时,队列空,当front=rear 且tag=1时,队列满,即队列中已有M个元素.bool EnCQueue(CyclicQueue& Q, ElemType x){ {/*编写该函数体。

/}//在下面编写函数体2.已知二又树中的结点类型Bin·rreeNode定义为:slruct BinTreeNode {char data;BinTreeNode * left, * right;};其中data为结点值域,left和righ~分别为指向左、右子女结点的指针域,根据下面函数声明编写出求一棵二叉树中结点总数的递归算法,该总数值由函数返回.假定BT初始指向这棵二又树的.根结点.int BTreeCount(BinTreeNode* BT);答案算法设计题(2小题,每小题6‘分,共12分)1.分步给分if (Q. rear=Q, front && Q tag== 1) return false;Q. elem[Q, rear] = x;Q. rtar= (Q. rear+ 1) %M;if(Q. rear== Q. front) Q. tag= 1;return true;2.分步给分int BTreeCount(BinTreeNode * BT)(if(BT== NULL)return O;elsereturn BTreeCount ( BT->left) +BTreeCount(BT-> fight) + l;试题21.设字符串类String具有下列操作:int Length()const; //计算字符串的长度chargetData(k); //提取字符串第k个字符的值若字符串Tar的值为“ababcabcacbab“,的值为‘abcac”时,(1)给出下面算法执行后返回的结果,(2)给出下面。

算法复习题

算法复习题

一、选择题1、衡量一个算法好坏的标准是( )。

(A )运行速度快 (B )占用空间少 (C )时间复杂度低 (D )代码短2、函数n n 1032 的渐进表达式是( )。

(A )O(23n ) (B )O(3) (C )O(n 10) (D )O(2n )3、以下不可以使用分治法求解的是( )。

(A )棋盘覆盖问题 (B )选择问题 (C )归并排序 (D ) 0/1背包问题4、二分搜索算法是利用( )实现的算法。

(A )分治策略 (B )动态规划法 (C )贪心法 (D )回溯法5、二分搜索算法的时间复杂性为( )。

(A )O(2n ) (B )O(n ) (C )O(n log ) (D )O(n n log )6、快速排序算法的时间复杂性为( )。

(A )O(2n ) (B )O(n ) (C )O(n log ) (D )O(n n log )7、实现大整数的乘法是利用( )的算法。

(A )分治策略 (B )动态规划法 (C )贪心法 (D )回溯法8、矩阵连乘问题的算法可由( )设计实现。

(A )分支界限算法 (B )动态规划算法 (C )贪心算法 (D )回溯算法9、实现循环赛日程表利用的算法是( )。

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

(A )定义最优解 (B )构造最优解 (C )算出最优解 (D )子问题重叠性质11、最长公共子序列算法利用的算法是( )。

(A )分治法 (B )动态规划法 (C )贪心法 (D )回溯法12、下列算法中通常以自底向上的方式求解最优解的是( )。

(A )备忘录法 (B )动态规划法 (C )贪心法 (D )回溯法13、以下不可以使用分治法求解的是( )。

(A )棋盘覆盖问题 (B )选择问题 (C )归并排序 (D )0/1背包问题14、下列算法中不能解决0/1背包问题的是( )(A )贪心法 (B )动态规划 (C )回溯法 (D )分支限界法15、算法是由若干条指令组成的有穷序列,而且满足以下性质( )(A )输入:有0个或多个输入 (B )输出:至少有一个输出(C )确定性:指令清晰,无歧义 (D )有限性:指令执行次数有限,而且执行时间有限A (1)(2)(3) B(1)(2)(4) C(1)(3)(4) D (1) (2)(3)(4)16、函数32n +10nlog n 的渐进表达式是( ).A. 2nB. 32nC. nlog nD. 10nlog n17、能采用贪心算法求最优解的问题,一般具有的重要性质为:( )(A )最优子结构性质与贪心选择性质 (B )重叠子问题性质与贪心选择性质(C )最优子结构性质与重叠子问题性质 (D )预排序与递归调用18、回溯法在问题的解空间树中,按()策略,从根结点出发搜索解空间树。

东南大学算法设计与分析复习题

东南大学算法设计与分析复习题

什么是基本‎运算?答:基本运算是‎解决问题时‎占支配地位‎的运算(一般1种,偶尔两种);讨论一个算‎法优劣时,只讨论基本‎运算的执行‎次数。

什么是算法‎的时间复杂‎性(度)?答:算法的时间‎复杂性(度)是指用输入‎规模的某个‎函数来表示‎算法的基本‎运算量。

T(n)=4n3什么是算法‎的渐近时间‎复杂性?答:当输入规模‎趋向于极限‎情形时(相当大)的时间复杂‎性。

表示渐进时‎间复杂性的‎三个记号的‎具体定义是‎什么?答:1. T(n)= O(f(n)):若存在c > 0,和正整数n‎0≣1,使得当n≣n0时,总有T(n)≢c*f(n)。

(给出了算法‎时间复杂度‎的上界,不可能比c‎*f(n)更大)2. T(n)=Ω(f(n)):若存在c > 0,和正整数n‎0≣1,使得当n≣n0时,存在无(给出了算法‎时间复杂度‎的下界,复杂度不可‎能比c*f(n)穷多‎个n ,使得T(n)≣c*f(n)成立。

更小)3. T(n)= Θ(f(n)):若存在c1‎,c2>0,和正整数n‎0≣1,使得当n≣n0时,总有T(n)≢c1*f(n),且有无穷多‎个n,使得T(n)≣c2*f(n)成立,即:T(n)= O(f(n))与T(n)=Ω(f(n))都成立。

(既给出了算‎法时间复杂‎度的上界,也给出了下‎界)什么是最坏‎情况时间复‎杂性?什么是平均‎情况时间复‎杂性?答:最坏情况时‎间复杂性是‎规模为n的‎所有输入中‎,基本运算执‎行次数为最‎多的时间复‎杂性。

平均情况时‎间复杂性是‎规模为n的‎所有输入的‎算法时间复‎杂度的平均‎值(一般均假设‎每种输入情‎况以等概率‎出现)。

一般认为什‎么是算法?什么是计算‎过程?答:一般认为,算法是由若‎干条指令组‎成的有穷序‎列,有五个特性‎a.确定性(无二义)b.能行性(每条指令能‎够执行)c.输入 d.输出 e.有穷性(每条指令执‎行的次数有‎穷)只满足前4‎条而不满足‎第5条的有‎穷指令序列‎通常称之为‎计算过程。

算法分析复习题

算法分析复习题

一、单项选择题:1、算法的五大特征是确定性、有穷性、输入、输出和可行性。

其输入至少是( A )个。

A、0B、1C、n D、-12、大整数的乘法是利用的算法( C )。

A、贪心法B、动态规划法C、分治策略D、回溯法3、采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为( B )。

A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)4、一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。

A、重叠子问题B、最优子结构性质C、贪心选择性质D、定义最优解5、设一个算法的输入规模为n,Dn是所有输入的集合,任一输入I∈Dn,P(I)是I出现的概率,有=1,T(I)是算法在输入I下所执行的基本语句次数,则该算法的平均执行时间为(D)。

A、B、C、D、6、把递归算法转化为非递归算法有如下两种基本方法:(1)直接用循环结构的算法替代递归算法。

(2)用( A )模拟系统的运行过程,通过分析只保存必须保存的信息,从而用非递归算法替代递归算法。

A、栈B、队列C、顺序表D、链表7、算法分析中,记号 表示(A)。

A、渐进下界B、渐进上界C、非紧上界D、紧渐进界9、贪心算法与动态规划算法的主要区别是(B )。

A、最优子结构B、贪心选择性质C、构造最优解D、定义最优解10、回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。

A、广度优先B、活结点优先C、扩展结点优先D、深度优先11. 回溯法的问题的解空间树是(B),并不需要在算法运行时构造一棵真正的树结构,然后再在该解空间树中搜索问题的解,而是只存储从根结点到当前结点的路径。

A、顺序方式的二叉树B、虚拟的树C、满二叉树D、完全二叉树12. 应用回溯法求解问题时,首先应该明确问题的解空间。

解空间中满足约束条件的决策序列称为(C)。

A、最优解B、局部最优解C、可行解D、最优子序列解13. 一个问题的最优解包含其子问题的最优解,则称此问题具有(D)性质。

算法分析与设计—部分复习题答案

算法分析与设计—部分复习题答案

算法设计与分析复习题1、一个算法应有哪些主要特征?有限性、确定性、输入、输出、可行性2、分治法(Divide and Conquer)与动态规划(Dynamic Programming)有什么不同?分治法是将一个问题划分成一系列独立的子问题,分别处理后将结果组合以得到原问题的答案。

动态规划同样将一个问题划分成一系列子问题进行处理,但当子问题不是互相独立而是互有联系时,动态规划不会重复计算子问题间联系的问题,是更高效的解决办法。

(具体解释太长了这个答案可以得点分)3、试举例说明贪心算法对有的问题是有效的,而对一些问题是无效的。

贪心算法的思想是通过选择局部最优以求得最优解,但某些最优解问题无法由局部最优推出,如0-1 knapsack problem(背包问题,一个能装20斤的背包装入一定商品,要求价值最高)4、求解方程f(n)=f(n-1)+f(n-2),f(1)=f(2)=1。

(斐波那契数列)(证明太复杂了不贴了)k5、求解方程T(n)=2T(n/2)+1,T(1)=1,设n=2。

T(n)=2*(2*T(n/4)+1)+1=2*(2*(T(n/8)+1)+1)+1 推出以下方程且且证明用数学归纳法。

void max_min(int a[],int m, int n, int* min) //运用分治法查找最大值与最小值{ int middle,hmin,gmin; if( m==n ) { * min = a[m]; } else if(m == n-1) { if( a[m] > a[n]) {*min = a[n]; } else { *min =a[m]; } } else { middle = (m+n)/2; max_min(a,m,middle,&gmin); max_min(a,middle+1,n,&hmin); if(gmin < hmin) { *min = gmin; } else { *min= hmin; } } } 6、编写一个Quick Sorting 算法,并分析时间复杂性。

华中科技大学《算法设计与分析》复习参考题

华中科技大学《算法设计与分析》复习参考题

华中科技大学《算法设计与分析》复习参考题1.什么是算法?算法必须满足的五个特性是什么?算法:一组有穷的规则,规定了解决某一特定类型问题的一系列运算。

(有限指令的集合,遵循它可以完成一个特定的任务).必须满足的五个特性是(遵循以下五条准则):1.有穷(限)性2.确定性3.可(能)行性4.输入(n≥0)5.输出(n≥1)2.对算法进行分析分哪两个阶段?各自完成什么任务(分别得到什么结果)?对一个算法要作出全面的分析可分成两个阶段进行,即:事前分析和事后测试。

事前分析求出该算法的一个时间界限函数;3.证明:若f1(n)=O(g1(n))并且f2(n)=O(g2(n)),那么f1(n)+f2(n)=O(ma某{g1(n),g2(n)}证明:根据f1(n)=O(g1(n))可知,存在正常数C1,当n≥n0时,使得|f1(n)|≤C1|g1(n)|;同理,根据f2(n)=O(g2(n))可知,存在正常数C2,当n≥n0时,使得|f2(n)|≤C2|g2(n)|当n≥n0时,|f1(n)+f2(n)|≤|f1(n)|+|f2(n)|≤C1|g1(n)|+C2|g2(n)|≤C1|gk(n)|+C2|gk(n)|≤(C1+C2)|gk(n)|,其中gk(n)=ma某{g1(n),g2(n)},k={1,2}当n≥n0时,取C=(C1+C2),据定义命题得证。

4.如果f1(n)=Θ(g1(n))并且f2(n)=Θ(g2(n)),下列说法是否正确?试说明之。

(a)f1(n)+f2(n)=Θ(g1(n)+g2(n))(b)f1(n)+f2(n)=Θ(min{g1(n),g2(n)})(c)f1(n)+f2(n)=Θ(ma某{g1(n),g2(n)})答:(a)和(c)均正确,(b)错误。

(a)正确可以根据定义直接证得。

(b)错误可举反例。

例:f1(n)=2n,f2(n)=2n2下面证明(c)正确性.根据上题已经证明f1(n)+f2(n)=O(ma某{g1(n),g2(n)}),下面只需证明f1(n)+f2(n)=Ω(ma某{g1(n),g2(n)}),即存在正常数C,使得|f1(n)+f2(n)|≥C(ma某{g1(n),g2(n)})根据f1(n)=Θ(g1(n))并且f2(n)=Θ(g2(n))得到,当n≥n0时,存在正常数C1、C2、C3、C4C1|g1(n)|≤|f1(n)|≤C3|g1(n)|C2|g2(n)|≤|f2(n)|≤C4|g2(n)|不妨设ma某{g1(n),g2(n)}=g1(n)由于|f1(n)+f2(n)|≥||f1(n)|-|f2(n)||≥|C1|g1(n)|-C3|g2(n)||=C|ma某{g1(n),g2(n)}|取C≥|C1-C3|的正常数,由定义得f1(n)+f2(n)=Ω(ma某{g1(n),g2(n)})命题得证。

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

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

一、填空题1、算法的复杂性是算法效率2、的度量,是评价算法优劣的重要依据。

1、设n为正整数,利用大“O(·)”记号,将下列程序段的执行时间表示为n的函数,则下面程序段的时间复杂度为O(n)2、。

i=1; k=0;while(i<n) { k=k+10*i;i++; }3、计算机的资源最重要的是时间和空间资源。

因而,算法的复杂性有时间复杂度和空间复杂度之分。

3、f(n)= 6×2n+n2,f(n)的渐进性态f(n)= O( 2n4、 )5、递归是指函数直接或者间接通过一些语句调用自身。

4、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立6、且与原问题相同。

二、选择题(本题20分,每小题2分)1、分支限界法与回溯法都是在问题的解空间树T上搜索问题的解,二者( B )。

A.求解目标不同,搜索方式相同B.求解目标不同,搜索方式也不同C.求解目标相同,搜索方式不同D.求解目标相同,搜索方式也相同2、回溯法在解空间树T上的搜索方式是( A)。

A.深度优先B.广度优先C.最小耗费优先D.活结点优先3、在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( B )。

A.回溯法B.分支限界法C.回溯法和分支限界法D.回溯法求解子集树问题4、以下关于判定问题难易处理的叙述中正确的是( C )。

A.可以由多项式时间算法求解的问题是难处理的B.需要超过多项式时间算法求解的问题是易处理的C.可以由多项式时间算法求解的问题是易处理的D.需要超过多项式时间算法求解的问题是不能处理的5、设f(N),g(N)是定义在正数集上的正函数,如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N),则称函数f(N)当N充分大时有上界g(N),记作f(N)=O(g(N)),即f(N)的阶( A )g(N)的阶。

A.不高于B.不低于C.等价于D.逼近6、对于含有n个元素的子集树问题,最坏情况下其解空间的叶结点数目为( B )。

计算机算法复习题及答案(前三章)

计算机算法复习题及答案(前三章)

计算机算法复习题及答案(前三章)第一章1、什么是绝对误差?什么是相对误差?答:绝对误差等于准确值与近似值差的绝对值。

相对误差是近似数的误差与准确值的比值。

2、什么是绝对误差限?什么是相对误差限?答:绝对误差限为绝对误差的“上界”相对误差限为相对误差绝对值的“上界”3、有效数字与绝对误差限有何关系?有效数字与相对误差限有何关系?答:(绝对)若近似值的绝对误差限是某一位上的半个单位,且该位直到的第一位非零数字一共有几位。

则称近似值有n位有效数字。

(相对)设近似值=±0.···×有n位有效数字,≠0,则真相对误差限为×设近似值=±0.···×的相对误差限为×,≠0,则它有n位有效数字。

4、例1.11、例1.12、例1.15、例1.16.例1.11.设x=4.26972,那么取2位,=4.3,有效数字为2位取3位,=4.27,有效数字为3位取4位,=4.270,有效数字为4位取5位,=4.2697,有效数字为5位例1.12,若=3587.64是x的具有6位有效数字的近似值,则误差限是|-x|≤×=×若=0.0023156是x的具有5位有效数字的近似值,则误差限是|-x|≤×≤×例1.15,若=2.72来表示e的具有3位有效数字的近似值,则相对误差限是=×=×例1.16要使的近似值的相对误差限小于0.1%,要取几位有效数字?由定理1.1,≤×.由于=4.4···,已知=4,故只要取n=4,就有≤0.125×=0.1%只要对的近似值取4位有效数字,其相对误差限就小于0.1%。

此时由开方表得≈4.472 5、课本13~14页习题1、2、3、4.习题1:下列各数都是经过四舍五入得到的近似数,试指出它们是具有几位有效数字的近似数,并确定++和的误差限答:=1.1021,5位,=0.031,2位,=385.6,4位|++|-|++|≤|-|+|-|+|-|=×+×+×=0.5055 η()≈||η()+|η()|=1.1021××+0.031××=0.00055105+0.00000155=0.0005526η()≈||η()+||η() =0.001708255+0.21308256 =0.2148习题2.已测得某场地长L 的值为=110m ,宽d 的值为=80m,已知|L-|≤0.2m ,|d-|≤0.1m ,试求面积S=Ld 的绝对误差限和相对误差限。

山东省普通高中学业水平考 试算法与程序设计复习资料

山东省普通高中学业水平考    试算法与程序设计复习资料

老题目1、下列VB程序运行时,在文本框Text1中输入20,在文本框Text2中输Private Sub command1 click()a=val(text1.text)b=val(text2.text)Text3.text=a+bend sub2、下列程序段中循环体执行次数是 (3)s=0i=0do while s<10i=i+1s=s+i*iloopprint iprint s实际运行结果:i=3 S=14时程序结束,此时循环体执行3次。

dim a as integerdim b as integerdim c as integera=1b=1for i=1 to 4c=a+ba=bb=cnext iprint c5、分析下面问题,请选择最合适的算法—(C)搬砖问题:100块砖,100人搬,一个男人搬4块,一个女人搬3块,两个小儿抬一块,要求一次全搬完,问需男、女、小儿各多少人。

A、解析法B、递归法C、穷举法D、排序法6、完善程序:考拉兹猜想又称3n+1猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,;如果它是偶数,则对它除以2;如此循环,最终都能够得到1。

如n=6,根据上述规则得出6—3—10—5—16—8—4—2—1。

(共有8个步骤)以下是验证考拉兹猜想的主要VB程序片段,请你补全代码。

n=val(inputbox("n="))cnt =0 '统计步骤数do while n>1cnt=cnt+1if n mod 2=0 thenloopprint cnt '输出步骤数1、VB事件过程如下private sub command1_click()a=val(text1.text)b=a*a+1text1.text=bend sub输入2以后,第一次运行b=a*a+1,结果是5,5给a,第二次运行b=a*a+1,结果是26。

3、写出程序运行结果dim x as integerdim y as integery=val(inputbox("y="))for i=1 to 3x=val(inputbox("x="))if x<y theny=xend ifnext iprint y ‘程序运行后,依次输入45 96 11 37输入45后赋值给y,96赋值给x,运行if x<y then y=x,不符合要求,y值保留45,输入11给x,运行if x<y then y=x,符合要求,y值为11,输入37给x,运行if x<y then y=x,不符合要求,y值输出11,注意for i=1 to 3限制了x的输入数据个数,x需要输入3个数据,如果改为for i=1 to 4,则x需要再输入4个数据A、Mid(s,7,8)B、Right(Left(s,14),8)C、Mid(s,7,4)+Mid(s,11,2)+Mid(s,13,2)D.Left(s,14)-Left(s,6)5、“完数”一个自然数恰好等于它的因子(不包含本身)之和,如6的因子为1,2,3,又6=1+2+3 6就是完数。

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

二、简答题: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 kij 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.试用贪心算法求解汽车加油问题:已知一辆汽车加满油后可行驶n 公里,而旅途中有若干个加油站。

试设计一个有效算法,指出应在哪些加油站停靠加油,使加油次数最少,请写出该算法。

6.试用动态规划算法实现下列问题:设A 和B 是两个字符串。

我们要用最少的字符操作,将字符串A 转换为字符串B ,这里所说的字符操作包括: ①删除一个字符。

②插入一个字符。

③将一个字符改为另一个字符。

请写出该算法。

7.对于下图使用Dijkstra 算法求由顶点a 到顶点h 的最短路径。

8.试写出用分治法对数组A[n]实现快速排序的算法。

9.有n 个活动争用一个活动室。

已知活动i 占用的时间区域为[s i ,f i ],活动i,j 相容的条件是:sj ≥f i ,问题的解表示为(x i | x i =1,2…,n,),x i 表示顺序为i 的活动编号活动,求一个相容的活动子集,且安排的活动数目最多。

10.设x 1、x 2、x 3是一个三角形的三条边,而且x 1+x 2+x 3=14。

请问有多少种不同的三角形?给出解答过程。

11.设数组A 有n 个元素,需要找出其中的最大最小值。

①请给出一个解决方法,并分析其复杂性。

②把n 个元素等分为两组A1和A2,分别求这两组的最大值和最小值,然后分别将这两组的最大值和最小值相比较,求出全部元素的最大值和最小值。

如果A1和A2中的元素多于两个,则再用上述方法各分为两个子集。

直至子集中元素至多两个元素为止。

这是什么方法的思想?请给出该方法的算法描述,并分析其复杂性。

12.有n 个程序和长度为L 的磁带,程序i 的长度为a i ,已知L ani i∑=1,求最优解(x i ,x 2 ,...,x i ,…,x n ),x i =0,1, x i =1,表示程序i 存入磁带,x i =0,表示程序i 不存入磁带,满足L ax ni ii ≤∑=1,且存放的程序数目最多。

13.试用分治法实现有重复元素的排列问题:设),...,,{21n r r r R =是要进行排列的n 个元素,其中元素n r r r ,...,,21可能相同,试设计计算R 的所有不同排列的算法。

14.试用动态规划算法实现0-1闭包问题,请写出该算法。

15.试用贪心算法求解下列问题:将正整数n 分解为若干个互不相同的自然数之和,使这些自然数的乘积最大,请写出该算法。

16.试写出用分治法对一个有序表实现二分搜索的算法。

17.试用动态规划算法实现最长公共子序列问题,请写出该算法。

18.假设有7个物品,它们的重量和价值如下表所示。

若这些物品均不能被分割,且背包容量M =150,使用回溯方法求解此背包问题,请写出状态空间搜索树。

19.求解子集和问题:对于集合S={1,2 ,6,8},求子集,要求该子集的元素之和d=9。

①画出子集和问题的解空间树;②该树运用回溯算法,写出依回溯算法遍历节点的顺序;③如果S 中有n 个元素,指定d ,用伪代码描述求解子集和问题的回溯算法。

20.求解填字游戏问题:在3×3个方格的方阵中要填入数字1到N (N ≥10)内的某9个数字,每个方格填一个整数,似的所有相邻两个方格内的两个整数之和为质数。

试采用回溯法写出满足这个要求的一种数字填法的算法和满足这个要求的全部数字填法的算法。

21.试用动态规划算法实现最大子矩阵和问题:求n m ⨯矩阵A 的一个子矩阵,使其各元素之和为最大。

22.试用回溯法解决下列整数变换问题:关于整数i 的变换f 和g 定义如下:⎣⎦2/)(;3)(i i g i i f ==。

对于给定的两个整数n 和m ,要求用最少的变换f 和g 变换次数将n 变为m 。

23.关于15谜问题。

在一个4×4的方格的棋盘上,将数字1到15代表的15个棋子以任意的顺序置入各方格中,空出一格。

要求通过有限次的移动,把一个给定的初始状态变成目标状态。

移动的规则是:每次只能把空格周围的四格数字(棋子)中的任意一个移入空格,从而形成一个新的状态。

为了有效的移动,设计了估值函数C 1(x),表示在结点x 的状态下,没有到达目标状态下的正确位置的棋子的个数。

请使用该估计函数,对图示的初始状态,给出使用分支限界方法转换到目标状态的搜索树。

初始状态目标状态二、简答题:1.备忘录方法和动态规划算法相比有何异同?简述之。

备忘录方法是动态规划算法的变形。

与动态规划算法一样,备忘录方法用表格保存已解决的子问题的答案,在下次需要解此问题时,只要简单地查看该子问题的解答,而不必重新计算。

备忘录方法与动态规划算法不同的是,备忘录方法的递归方式是自顶向下的,而动态规划算法则是自底向上递归的。

因此,备忘录方法的控制结构与直接递归方法的控制结构相同,区别在于备忘录方法为每个解过的子问题建立了备忘录以备需要时查看,避免了相同的子问题的重复求解,而直接递归方法没有此功能。

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

回溯法解题的主要步骤包括:1)针对所给问题,定义问题的解空间;2)确定易于搜索的解空间结构;3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。

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

动态规划算法求解的基本要素包括:1)最优子结构是问题能用动态规划算法求解的前提;2)动态规划算法,对每一个子问题只解一次,而后将其解保存在一个表格中,当再次需要解此子问题时,只是简单地用常数时间查看一下结果,即重叠子问题。

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

回溯法的基本做法是搜索,在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。

算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。

如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。

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

将递归算法转化为非递归算法的方法主要有:1)采用一个用户定义的栈来模拟系统的递归调用工作栈。

该方法通用性强,但本质上还是递归,只不过人工做了本来由编译器做的事情,优化效果不明显。

2)用递推来实现递归函数。

3)通过Cooper变换、反演变换能将一些递归转化为尾递归,从而迭代求出结果。

后两种方法在时空复杂度上均有较大改善,但其适用范围有限。

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

1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。

2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。

7.简述算法复杂性的概念,算法复杂性度量主要指哪两个方面?算法复杂性是算法运行所需要的计算机资源的量,需要时间资源的量称为时间复杂性,需要的空间资源的量称为空间复杂性。

这个量应该只依赖于算法要解的问题的规模、算法的输入和算法本身的函数。

如果分别用N、I和A表示算法要解问题的规模、算法的输入和算法本身,而且用C表示复杂性,那么,应该有C=F(N,I,A)。

算法复杂性度量主要包括算法的时间复杂性和算法的空间复杂性。

8.贪心算法求解的问题主要具有哪些性质?简述之。

贪心算法求解的问题一般具有二个重要的性质:一是贪心选择性质,这是贪心算法可行的第一个基本要素;另一个是最优子结构性质,问题的最优子结构性质是该问题可用贪心算法求解的关键特征。

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

分治法的基本思想:将n个输入分成k个不同子集合,得到k个不同的可独立求解的子问题,其中1<k ≤n,而且子问题与原问题性质相同,原问题的解可由这些子问题的解合并得出。

合并排序基本思想:将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的集合。

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

贪心算法和动态规划算法都要求问题具有最优子结构性质,这是两类算法的一个共同点。

动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每作一次贪心选择就将所求问题简化为规模更小的子问题。

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

解:根据递推式 f i (X )=max{f i-1(X),f i-l (X —w i )+p i |X ≥wi } 从i=1开始,最后得到f n (M )f1(1) ~ f1(11)= 0 f1(12) ~ f1(20)= p1=15 f2(1) ~ f2(9)= 0f2(10) ~ f2(11)= max{f1(10),f1(10 – w2)+p2} =13 f2(12) ~ f2(20)= max{f1(12),f1(12 – w2)+p2}=15f3(20)=max{f2(20),f2(20 – w3)+p3} = f2(20 –6)+10=25 可获得的最大利润为25,最优解为:(1,0,1) 2.按要求完成以下关于排序和查找的问题。

相关文档
最新文档