算法分析与设计期末考试复习题纲_第1页
算法分析与设计期末考试复习题纲_第2页
算法分析与设计期末考试复习题纲_第3页
算法分析与设计期末考试复习题纲_第4页
算法分析与设计期末考试复习题纲_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、选择题1.2.3.4.5.6.7.8.9.10.11.12.算法分析与设计?期末复习题算法必须具备输入、输出和(A.可行性和平安性IC.有穷性和平安性I算法分析中,记号 O表示(BA.渐进下界C.非紧上界假设某算法在输入规模为n时的计算时间为 T(n)=3*25。在某台计算机上实现并完成概算法的时间为 t 秒。现有另一台计算机,其运行速度为第一台的 么在这台新机器上用同一算法在题方法:3*25*64=3*2*A. n+8C. n+7设问题规模为T(N)=2T(N/2)+N/2 ,用 O表示的时间复杂度为(A. O(logN)C. O(NlogN)直接或间接调用自身的算法称为(A.贪心算法C.

2、迭代算法Fibonacci 数列中,第A. 5, 89C. 5, 144在有 8个顶点的凸多边形的三角剖分中,恰有A. 6 条弦和 7个三角形BC. 6条弦和 6 个三角形D一个问题可用动态规划算法或贪心算法求解的关键特征是问题的(A重叠子问题BC.贪心选择性质D以下哪个问题不用贪心法求解(CA.哈夫曼编码问题BC.最大团问题D以下算法中通常以自底向上的方式求解最优解的是(A.备忘录法C.贪心法以下算法中不能解决A.贪心法C.回溯法以下哪个问题可以用贪心算法求解(B.D.)等 4 个特性。.确定性和易读性.有穷性和确定性,记号 Q表示(A )渐进上界紧渐进界t秒内能解输入规模为多大的问题?.n

3、+6.n+5N时,某递归算法的时间复杂度记为CT(N),)。. O(N).O(N2logN)。.递归算法.回溯法4个和第 11个数分别是BD3,3,89144D0/1背包问题的是(B)。6个三角形5个三角形B.最优子结构性质.定义最优解O.单源最短路径问题.最小生成树问题B ).动态规划法.回溯法A)。动态规划.分支限界法)。64倍,那B )解T(1)=1 ,A. LCS 问题B.批处理作业问题C. 0-1背包问题D.哈夫曼编码问题13.用回溯法求解最优装载问题时,假设待选物品为 m种,贝 U 该问题的解空间树的结点 个数为。A.m!C. 2m+1-1A.单源最短路径问题B . N皇后问题C.

4、最小花费生成树问题D .背包问题17.使用二分搜索算法在n 个有序元素表中搜索一个特定元素,在最好情况和最坏情况下搜索的时间复杂性分别为 A 。P17A. O1 , OlognB. On , OlognC. O1 , OnlognD. On , Onlogn18.优先队列式分支限界法选取扩展结点的原那么是 C 。P162A先进先出B.后进先出C.结点的优先级D.随机19.下面不是分支界限法搜索方式的是D 。P161A.广度优先B.最小消耗优先C.最大效益优先D .深度优先20.分支限界法解最大团问题时,活结点表的组织形式是 B 。A.最小堆B.最大堆C.栈D.数组21.以下关于计算机算法的描述

5、不正确的选项是 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.根据计算最优值时得到的信息,构造最优解可

6、以省去的D. 以自底向上的方式计算出最优值B. 2m+1D 2m14.15.16.二分搜索算法是利用A 实现的算法。A.分治策略BC.贪心法D以下不是动态规划算法根本步骤的是 A.找出最优解的性质BC.算出最优解应该是最优值 下面问题B不能使用贪心法解决。.动态规划法.回溯法B 。P44.构造最优解D.定义最优解24.分治法所能解决的问题应具有的关键特征是C 。P16A. 该问题的规模缩小到一定的程度就可以容易地解决B. 该问题可以分解为假设干个规模较小的相同问题C. 利用该问题分解出的子问题的解可以合并为该问题的解D. 该问题所分解出的各个子问题是相互独立的25.以下关于回溯法的描述不正确的

7、选项是( D )。P114A. 回溯法也称为试探法B. 回溯法有“通用解题法之称C. 回溯法是一种能防止不必要搜索的穷举式搜索法D.用回溯法对解空间作深度优先搜索时只 能 用递归方法实现26.常见的两种分支限界法为( D )。P161A. 广度优先分支限界法与深度优先分支限界法;B. 队列式(FIFO)分支限界法与堆栈式分支限界法;C. 排列树法与子集树法;D. 队列式(FIFO)分支限界法与优先队列式分支限界法;二、 填空题1.f(n)=3n2+10 的渐近性态 f(n)= 0(n2),g(n)=10log3n的渐近性态 g(n)= 0( n)。2.一个“好的算法应具有正确性、可读性、 健壮

8、性 和高效率和低存储量需求等特性。3.算法的时间复杂性函数表示为C=F(N,I,A),分析算法复杂性的目的在于比拟_求解同意问题的两个不同算法的效率 的效率。4.构成递归式的两个根本要素是递归的边界条件和 递归的定义 。5.单源最短路径问题可用分支限界法和贪心算法求解。6.用分治法实现快速排序算法时,最好情况下的时间复杂性为 O(nlogn) ,最坏情况下的时间复杂性为0 仲 2),该算法所需的时间与运行时间和划分 两方面因素有关。P267.0-1背包问题的解空间树为完全二叉树;n 后问题的解空间树为 排列树;8.常见的分支限界法有队列式(FIFO)分支限界法和优先队列式分支限界法。9.回溯法

9、搜索解空间树时常用的两种剪枝函数为约束函数 和剪枝函数。10.分支限界法解最大团问题时,活结点表的组织形式是最大堆_;分支限界法解单源最短路径问题时,活结点表的组织形式是最小堆。三、 算法填空题1.递归求解 Hanoi塔问题/阶乘问题。例 1 :阶乘函数 n! P12阶乘的非递归方式定义:n! = n (n-1) (n-2) 2 1试写出阶乖的递归式及算法。递归式为:1 n=0边界条件n!=、n(n1)! nA0递归方程递归算法:int factorial (int n)( if (n=0) return 1; 递归出 口return n * factorial (n-1); 递归调用例 2:

10、用递归技术求解 Hanoi 塔问题,Hanoi 塔的递归算法。P15其中 Hanoi (int n, int a, int c, int b)表示将塔座 A上的 n 个盘子移至塔座 C,以塔座 B为辅助。Move(a,c)表示将塔座 a上编号为 n 的圆盘移至塔座 c 上。rn, . ii .:II I 3 I I1I II II I 1 Ivoid 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、作业、

11、课件第2 章(2) 42 页-50页templatevoid QuickSort (Type a, int p, int r)(if (pr) (int q=Partition(a,p,r);QuickSort (a,p,q-1);QuickSort (a,q+1,r);Partition函数的具体实现templateint Partition (Type a, int p, int r)(int i = p, j = r + 1;Type x=ap;/将 x 的元素交换到左边区域/将x的元素交换到右边区域while (true) (while (a+i x & ix);if (i =

12、 j) break;Swap(ai, aj);ap = aj;aj = x;return j;3.用贪心算法求解最优装载问题。最优装载问题 P95课件第 4 章第 3-8页templatevoid 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+) xi = 0;for (int j = 1; j = n & wtj = c; j+)(xti = 1; c -= wtj;4.用回溯法求解 0-1背包/批处理作业调度/最大团问题,要会画解空

13、间树。例 1:用回溯法求解 0-1背包 P133 课件第 5章 第 24-38页templateclass Knapprivate:Typep Bound(int i); /计算上界void Backtrack(int i);Typew c; /背包容量int n; / 物品数Typew *w; /物品重量数组Typep *p; /物品价值数组Typew cw; /当前重量Typep cp; /当前价值Typep bestp; /当前最优价值;void Knap:Backtrack(int i) if(in) bestp=cp; return; if(cw+wibestp) /进入右子树Bac

14、ktrack(i+1);Typep Knap:Bound(int i)Typew cleft=c-cw; /剩余的背包容量Typep b=cp; /b 为当前价值/依次装入单位重量价值高的整个物品while(i=n&wi=cleft)( cleft-=wi; b+=pi;i+; if(i=n) /装入物品的一局部b+=pi*cleft/wi;return b; / 返回上界class Object / 物品类(friend int Knapsack(int *,int *,int,int);public:int operator =a.d);int ID; /物品编号float d;

15、/单位重量价值;Typep Knapsack( Typep p,Typew w,Typew c,int n)( / 为 Typep Knapsack 初始化Typew W=0; /总重量Typep P=0; /总价值Object* Q=new Objectn; / 创立物品数组,下标从 0开始for(int i=1;i=n;i+) /初始物品数组数据( Qi-1.ID=i;Qi-1.d=1.0*pi/wi;P+=pi;W+=wi;if(W=c) /能装入所有物品return P;if(W=c) /能装入所有物品return P;QuickSort(Q,0,n-1); /依物品单位重量价值非增排

16、序Knap K;K.p=new Typepn+1;K.w=new Typewn+1;for(int i=1;i n)( for (int j = 1; j = n; j+)else/各作业所需的处理时间/当前作业调度当前最优作业调度/机器 2完成处理时间/机器 1完成处理时间/完成时间和/当前最优的完成时间和/作业数bestxj = xj; bestf = f; for (int j = i; j f1)?f2i-1:f1)+mxj2;f+=f2i;if (f n)( for(int j=1;j=n;j+) bestxj=xj; bestn=cn; return;/判断第 i 个顶点是否与已选

17、顶点都有边相连int OK=1;for(int j=1;jbestn) /如有可能在右子树中找到更大的团,那么进入右子树( xi=0; Backtrack(i+1); A 所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和,=Mf-iq机器1机器2作业L21作业a31作业323倜度方案不同,f也不同,批处理作业调度问题要求对于给定的n个作业,制定最正确作业调度方案,使其完 成时间和到达最小。调度方案f调度方案f1,2,3192,3,1211,3,23,1,219-12,1,3203,2,1191!2345G7a911T21 ,已入选的顶点集与当前团中的顶点无边相连只要与当前团中一个顶

18、点无边相连,贝 U中计算时间:O(n2n)四、 简答题1.请简述使用动态规划算法解题的根本步骤。P44动态规划的设计分为以下4 个步骤:(1) 找出最优解的性质,并刻划其结构特征。(2) 递归地定义最优值。(3) 以自底向上的方式计算出最优值。(4) 根据计算最优值时得到的信息,构造最优解。2.简述动态规划方法与分治法的异同。P44相同点:动态规划算法与分治法类似,其根本思想也是将待求解问题分解成假设干个子问题 然后从这些子问题的解得到原问题的解。不同点:分治法的子问题互相独立且与原问题相同。与分治法不同的是,适合于动态规划 求解的问题,经分解得到的子问题往往不是互相独立的。也就是各个子问题包

19、含公共的子 子问题。3.试比拟 Prim算法与 Kruskal 算法的异同。105-P107相同点:Prim(普里姆)算法和 Kruskal(克鲁斯卡尔)算法都可以看作是应用贪心算法构造最 小生成树的例子。利用了最小生成树性质。0 10 11 t 0 1 0 1a= oiooi toooiInt OK=1: for(lrit;胛耳什+)1时心咖=0OK=0;break; xi=1: cn+;Bdcktrack(i4l|;Xi=0: cn-; ir(cn+n-ibestn)(xi=0;Backtrack(i+1|;不同点:Prim(普里姆)算法:在这个过程中选取到的所有边恰好构成 G的一棵最小生

20、成树 T, T 中包 含 G的 n-1条边,且不形成回路。Kruskal(克鲁斯卡尔)算法:是构造最小生成树的另一个常用算法。该算法不是通过扩充连通子集来进行贪心选择。而是通过选择具有最小权的边的集合来进行贪心选择。在选择的同时可以进行连通操作以便形成生成树。4.请简述分支限界法的搜索策略。 P161课件第 6 章(1)第 6 页(1) 分支限界法以广度优先或以最小消耗(最大效益)优先的方式搜索问题的解空间树。(2) 每一个活结点只有一次时机成为扩展结点。(3) 活结点一旦成为扩展结点,就一次性产生其所有儿子结点。(4) 儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被参

21、加活结点表中。(5) 从活结点表中取 下一结点 成为当前扩展结点,并重复上述结点扩展过程。这个过程一 直持续到找到所需的解或活结点表为空时为止。5.试比拟分支限界法与回溯法的异同。P161课件第 6 章(1)第 5 页不同点:(1) 求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法 的求解目标那么是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义 下的最优解。(2) 搜索方式:回溯法以深度优先的方式搜索解空间树,而分支限界法那么以广度优先或以最 小消耗优先的方式搜索解空间树。五、算法应用题1.用动态规划求解凸多边形最优三角剖分问题。三角剖分的结构及其

22、相关问题P61(1)语法树与完全加括号方式一个表达式的完全加括号方式相应于一棵完全二叉树,称为表达式的语法树。例如,完全加括号的矩阵连乘积(A1(A2A3)(A4(A5A6) 所相应的语法树如图(a)所示。(2)语法树与凸多边形三角剖分凸多边形 P=v0,v1, -vn-1的三角剖分也可以用语法树表示。如图:根结点是边 v0v 6(可以任选)。其他边那么是语法树的叶子节点。v0v 6是三角形 v0v3v6 的一条边。2、三角剖分与矩阵连乘P61(1) 一般来说,凸多边形的三角剖分和有n-1个叶节点的语法树存在- 对应关系。(2) N个矩阵连乘的完全加括号和有n 个叶节点的语法树也存在- 对应关

23、系。(3) 所以,n 个矩阵连乘的完全加括号和有n+1 个节点的凸多边形的三角剖分也存在- 对应关系。(4) 矩阵连乘积中 A1 A2 -An 中的每个矩阵 Ai 对应于凸(n+1)边形中的一条边 vi-1vi。三角剖分中的一条弦vivj , ibestp.(3) .继续向下搜索生成结点F,得到可行解(1,1,1,0,0),得到价值为 86,更新 bestp=86(如图第 3步)第 3步第 5 步第 8 步(4) .回溯:沿 E 回溯到左孩子 D,生成相应右孩子G,得到局部解(1,1,0,1 ),此时 b=93.1bbestp,可以生成右子树(第 4 步在第 5步的根底上没有 H和 I的图形)

24、(5) .继续生成结点 H,I ,得到可行解(1,1,0,1,0 ),价值为 88,更新 bestp=88(如图第 5步)(6) .回溯 H生成 J,得到局部解(1,1,0,0 ), 估计局部解 b=9288 (第 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),估

25、计局部解b=9092,回溯(第 9步在第 10步的根底上没有 N 的图形)(10) .向上继续回溯生成结点N,得到局部解(0),此时得到的 b=74+10*(46/27) =91.0392,回溯,此时已回到根结点,结束。最优解 (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.试根据改良后的最优装载算法找出最优装载量及相应的最优装载方案。要求:a)列出问题的解空间。b)构造解空间树。c)根据递归回溯算法求出最优解和最优值。六、算法设计题使用贪心算法求解。题型一:开会问题:某公司的会议很多,以至于全公司唯一的会议室不够用。现在给出这段时期的会议时间表,要求你适当删除一些会议,使得剩余的会议在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论