算法设计满分套件.docx
- 文档编号:17548372
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:13
- 大小:36.33KB
算法设计满分套件.docx
《算法设计满分套件.docx》由会员分享,可在线阅读,更多相关《算法设计满分套件.docx(13页珍藏版)》请在冰点文库上搜索。
算法设计满分套件
1第一章
1.算法是指解决问题的一种方法或一个过程。
2.算法是由若干条指令组成的有穷序列。
满足4条性质:
1输入
2输出
3确定性
4有限性
3.程序是算法用某种程序设计语言的具体实现。
程序可以不满足算法的性质④。
4.算法的复杂性有时间复杂性和空间复杂性之分。
5.算法的复杂性是算法运行所需要的计算机资源量,需要时间资源的量称为时间复杂性,需要空间资源的量称为空间复杂性。
6.最坏情况、最好情况、平均情况下的时间复杂性分别是Tmax(N)、Tmin(N)和Tavg(N)。
书上P2。
7.设f(N)和g(N)是定义在正整数集上的正函数。
(1)如果存在整的常熟C和自然数N0,使得当N≥N0时有f(N)≤Cg(N),则称函数f(N)当N充分大时上有界,且g(N)是他的一个上界,记为f(N)=O(g(N))。
这是还说f(N)的阶不高于g(N)的阶。
(2)如果存在整的常熟C和自然数N0,使得当N≥N0时有f(N)≥Cg(N),则称函数f(N)当N充分大时下有界,且g(N)是他的一个下界,记为f(N)=Ω(g(N))。
这是还说f(N)的阶不低于g(N)的阶。
(3)如果对于任意给定的ε>0,都存在正整数N0,使得当N≥N0时有f(N)/g(N)<ε,则称函数f(N)当N充分大时的阶比g(N)低,记为f(N)=o(g(N))。
第二章
10.分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
11.分治与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效的算法。
12.直接或间接地调用自身的算法称为递归算法。
13.边界条件与递归方程是递归函数的二个因素。
14.Fibonacci数列
intFibonacci(intn)
{if(n<=1)return1;
ReturnFibonacci(n-1)+Fibonacci(n-2);
}
15.排列问题算法在P13。
16.分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些字问题互相独立且与原问题相同。
递归的解这些子问题,然后将各子问题的解和并得到原问题的解。
17.二分搜索采用分治法策略,最坏情况0(logn)。
18.棋盘覆盖,覆盖一个2^k×2^k棋盘所需的L型骨牌个数为(4^k-1)/3。
19.合并排序的基本思想:
将待排序元素分成大小大致相同的两个子集合,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。
20.快速排序:
对于输入的子数组a[p:
r]分三个步骤排序。
(1)分解:
以a[p]为基准元素将a[p:
r]划分成3段a[p:
q-1],a[q]和a[q+1:
r],使a[p:
q-1]中任何一个元素小于等于a[q],而a[q+1:
r]中任何一个元素大于等于a[q]。
下标q在划分过程中确定。
(2)递归求解:
通过递归调用快速排序算法分别对a[p:
q-1]和a[q+1:
r]进行排序。
(3)合并:
由于对a[p:
q-1]和a[q+1:
r]的排序是就地进行的,所以在a[p:
q-1]和a[q+1:
r]都已排好的序后。
不需要执行任何计算,a[p:
r]就已排好序。
算法在书上P25。
21.快速排序算法在平均情况下的时间复杂性也是O(nlogn)。
第三章
22.动态规划算法详细P44第一大段。
23.动态规划算法4个步骤:
①找出最优解的性质,并刻画其结构特征。
②递归的定义最优值。
③以自底向上的方式计算出最优值。
④根据计算最优值时得到的信息,构造最优解。
24.当问题的最优解包含其子问题的最优解时,称该问题具有最优子结构性质。
25.分治法子问题相互独立,动态规划法子问题动态重叠。
26.可用动态规划法的另一基本要素是子问题的重叠性质。
27.在用递归算法自顶向下解此问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。
28.备忘录方法用表格保存已解决的子问题的答案,在下次需要解此子问题时,只要简单地查看该子问题的解答,而不必重新计算。
29.与动态规划算法不同的是,备忘录方法的递归方式是自顶向下的,而动态规划算法则是自底向上递归的。
30.最大字段的动态规划算法需要O(n)计算时间和O(n)空间。
31.凸多边形{v0,v1,…,vn-1}的三角剖分也可以用语法树来表示。
A1A4
A2A3A5A6
((A1(A2A3))(A4(A5A6)))
32.0-1背包问题P71-P720-1背包问题具有最优子结构性质。
第四章
33.活动安排问题的贪心算法GreedySelector:
Template
VoidGreedySelector(intn,Types[],Typef[],boolA[])
{A[1]=true;
Intj=1;
For(inti=2;i<=n;i++){
If(s[i]>=f[j]){A[i]=true;j=I;}
ElseA[i]=false;
}
}
34.贪心算法并不总能求得问题的整体最优解。
但对于活动安排问题总能求得整体最优解。
35.这是第一个基本要素。
也是贪心算法和动态规划算法的主要区别。
所谓贪心算则性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。
36.动态规划算法自底向上。
贪心选择通常是自顶向下的方式进行,以迭代的方式做出相继的贪心选择,没做一次贪心选择就将所求的问题简化为规模更小的子问题。
37.对于一个具体问题,要确定他是否具有贪心选择性质,必须证明每一步所做的贪心选择最终导致问题的最优解。
详细P93。
38.当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。
39.贪心算法和动态规划算法都要求问题具有最优子结构性质。
是共同点。
40.背包问题可以用贪心算法,0-1背包却不能。
背包问题的贪心算法:
VoidKnapsack(intn,floatM,floatv[],floatw[],floatx[])
{Sort(n,v,w);
IntI;
For(i=1;i<=n;i++)x[i]=0;
Floatc=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];
}
41.Dijkstra算法的迭代过程P101页
第五章
42.回溯法有“通用的解题法”之称。
43.确定了解空间的组织结构后,回溯法从开始结点(根结点)出发,以深度优先方式搜索整个解空间。
44.P97-P99忘了勾没勾。
45.子集树与排列树
回溯法搜索子集树:
voidBacktrack(intt)
{if(t>n)Output(x);
Else
For(inti=0;i<=1;i++){
x[t]=i;
if(Consraint(t)&&Bound(t))Backtrack(t+1);
}
}
回溯法搜索排列树:
voidBacktrack(intt)
{if(t>n)Output(x);
else
for(inti=t;i<=n;i++){
Swap(x[t],x[i]);
if(Constraint(t)&&Bound(t))Backtrack(t+1);
Swap(x[t],x[i]);
}
}
1、二分搜索算法是利用( )实现的算法。
A、分治策略 B、动态规划法 C、贪心法 D、回溯法
2、下列不是动态规划算法基本步骤的是( )。
A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解
3、最大效益优先是( )的一搜索方式。
A、分支界限法 B、动态规划法 C、贪心法 D、回溯法
4、最长公共子序列算法利用的算法是( )。
A、分支界限法B、动态规划法C、贪心法D、回溯法
5.回溯法解TSP问题时的解空间树是( )。
A、子集树B、排列树C、深度优先生成树D、广度优先生成树
6.下列算法中通常以自底向上的方式求解最优解的是( )。
A、备忘录法B、动态规划法C、贪心法D、回溯法
7、衡量一个算法好坏的标准是()。
A运行速度快B占用空间少C时间复杂度低D代码短
8、以下不可以使用分治法求解的是()。
A棋盘覆盖问题B选择问题C归并排序D0/1背包问题
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、定义最优解
14.广度优先是( )的一搜索方式。
A、分支界限法 B、动态规划法 C、贪心法 D、回溯法
15.背包问题的贪心算法所需的计算时间为( )。
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)
16.实现最大子段和利用的算法是( )。
A、分治策略B、动态规划法C、贪心法D、回溯法
17.实现棋盘覆盖算法利用的算法是( )。
A、分治法B、动态规划法C、贪心法D、回溯法
18.下面是贪心算法的基本要素的是( )。
A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解
19.回溯法的效率不依赖于下列哪些因素()
A.满足显约束的值的个数B.计算约束函数的时间
C.计算限界函数的时间D.确定解空间的时间
20.下面哪种函数是回溯法中为避免无效搜索采取的策略( )
A.递归函数B.剪枝函数C。
随机数函数D.搜索函数
21、以深度优先方式系统搜索问题解的算法称为()。
A、分支界限算法 B、概率算法 C、贪心算法 D、回溯算法
22、贪心算法与动态规划算法的主要区别是( )。
A、最优子结构B、贪心选择性质C、构造最优解D、定义最优解
23.采用最大效益优先搜索方式的算法是( )。
A、分支界限法B、动态规划法C、贪心法D、回溯法
24.( )是贪心算法与动态规划算法的共同点。
A、重叠子问题B、构造最优解C、贪心选择性质D、最优子结构性质
25.矩阵连乘问题的算法可由( )设计实现。
A、分支界限算法 B、动态规划算法 C、贪心算法 D、回溯算法
26.0-1背包问题的回溯算法所需的计算时间为( )
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)
27、背包问题的贪心算法所需的计算时间为( )
A、O(n2n) B、O(nlogn) C、O(2n) D、O(n)
29、使用分治法求解不需要满足的条件是()。
A子问题必须是一样的B子问题不能够重复C子问题的解可以合并D原问题和子问题使用相同的方法解
30、下面问题()不能使用贪心法解决。
A单源最短路径问题BN皇后问题C最小花费生成树问题D背包问题
31、下列算法中不能解决0/1背包问题的是()
A贪心法B动态规划C回溯法D分支限界法
32、回溯法搜索状态空间树是按照()的顺序。
A中序遍历B广度优先遍历C深度优先遍历D层次优先遍历
33、采用广度优先策略搜索的算法是( )。
A、分支界限法B、动态规划法C、贪心法D、回溯法
34.实现合并排序利用的算法是( )。
A、分治策略B、动态规划法C、贪心法D、回溯法
35.下列是动态规划算法基本要素的是( )。
A、定义最优解B、构造最优解C、算出最优解D、子问题重叠性质
36.下列算法中通常以自底向下的方式求解最优解的是( )。
A、分治法B、动态规划法C、贪心法D、回溯法
二、填空题
1.算法的复杂性有复杂性和复杂性之分。
2、程序是 用某种程序设计语言的具体实现。
3、算法的“确定性”指的是组成算法的每条是清晰的,无歧义的。
4.矩阵连乘问题的算法可由设计实现。
5、算法是指解决问题的或。
6、快速排序算法的性能取决于。
7、从分治法的一般设计模式可以看出,用它设计出的程序一般是。
8、问题的是该问题可用动态规划算法或贪心算法求解的关键特征。
9、以深度优先方式系统搜索问题解的算法称为。
10、任何可用计算机求解的问题所需的时间都与其有关。
11、计算一个算法时间复杂度通常可以计算、或计算步。
12、回溯法搜索解空间树时,常用的两种剪枝函数为和
14、解决0/1背包问题可以使用动态规划、回溯法和分支限界法,其中不需要排序的是,需要排序的是,。
15、使用回溯法进行状态空间树裁剪分支时一般有两个标准:
约束条件和目标函数的界,N皇后问题和0/1背包问题正好是两种不同的类型,其中同时使用约束条件和目标函数的界进行裁剪的是,只使用约束条件进行裁剪的是。
17、回溯法是一种既带有又带有的搜索算法。
18.动态规划算法的两个基本要素是.性质和性质
19.贪心算法的基本要素是质和性质。
21.动态规划算法的基本思想是将待求解问题分解成若干,先求解,然后从这些的解得到原问题的解。
算法是由若干条指令组成的有穷序列,且要满足输入,、确定性和四条性质。
23、快速排序算法是基于的一种排序算法。
24、以广度优先或以最小耗费方式搜索问题解的算法称为。
三、算法设计题
1.背包问题的贪心算法,分支限界算法
2.最大子段和:
动态规划算法
3.贪心算法求活动安排问题
5.快速排序
6.多机调度问题-贪心算法
四、简答题
1分治法的基本思想
2.分治法与动态规划法的相同点
3.分治法与动态规划法的不同点
4.分支限界法与回溯法的相同点
5.分治法所能解决的问题一般具有的几个特征是:
6.用分支限界法设计算法的步骤
7.回溯法中常见的两类典型的解空间树是子集
8.请简述符号t(n)∈θ(g(n)), t(n)∈Ω(g(n)),t(n)∈Ο(g(n))的含义。
9.分支限界法的搜索策略是:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 满分 套件
![提示](https://static.bingdoc.com/images/bang_tan.gif)