算法设计与分析考试重点归纳

上传人:灯火****19 文档编号:26096415 上传时间:2021-08-05 格式:DOCX 页数:10 大小:68.66KB
收藏 版权申诉 举报 下载
算法设计与分析考试重点归纳_第1页
第1页 / 共10页
算法设计与分析考试重点归纳_第2页
第2页 / 共10页
算法设计与分析考试重点归纳_第3页
第3页 / 共10页
资源描述:

《算法设计与分析考试重点归纳》由会员分享,可在线阅读,更多相关《算法设计与分析考试重点归纳(10页珍藏版)》请在装配图网上搜索。

1、算法设计考试重点整理题型:选择题 ( 10*2=20 分)简答题 ( 4*5=20 分)应用题 ( 3*10=30 分)算法题 ( 3*10=30 分)第一、二章算法的定义:解某一特定问题的一组有穷规则的集合 (对特定问题求解步骤的一种描述,是指令的有限序列)算法的特征: 1 )有限性2)确定性3 )输入4 )输出 5)能行性算法分析的目的:基本数据结构:线性结构(元素之间是一对一的关系)用顺序存储结构存储的线性表称为顺序表用链式存储结构存储的线性表称为链表。树形结构(元素之间是一对多的关系)图 ( 网 ) 状结构(元素之间是多对多的关系)栈: 是一种只允许在表的一端进行插入或删除操作的线性表

2、。 允许进行插入、 删除操作的一端称为栈顶,另一端称为栈底。 当栈中没有数据元素时, 称之为空栈。 栈的插入操作称为进压栈,删除操作称为出栈。o队列:只允许在一端进行插入操作,在另一端进行删除操作的线性表。允许进行插入操作的一端称为队尾。允许进行删除操作的一端称为队头。当队列中没有数据元素时,称之为空队列。队列的插入操作称为进队或入队。队列的删除操作称为退队或出队。树:树型结构是一种非线性结构,它用于描述数据元素之间的层次关系图图:G=(V, E)是一个二元组其中:V是图G中数据元素(顶点)的非空有限集集合E是图G中关系的有限集合由表达式求渐进表达式:例:(n2+n)/4n2/4(增长速率最快

3、的那一项)时间复杂度的计算:(P23)性能的比较:0(1) O(log2 n) O(n) O(nlog2n) =O(nlogn) O(n2) O(n 3) O(n k) 0(2n)AfV* zzfe弟二早算法思想、稳定性、时间复杂度、应用、排序的移动次数:希尔排序(数据结构P265 ):先将待排序列分割为若干个子序列分别进行直接插入排序;待整个序列基本有序时,再对全体记录进行一次直接插入排序。也称缩小增量的直接插入排序。希尔排序的时间复杂度在O(nlog 2n)和0(n2)之间,大致为0(n 1.3)合并排序(P59):设初始序列含有n个记录,则可看成 n个表长为1的有序表将这n个有 序表两两

4、合并,则可得n/2个表长为2的有序表再将这n/2个有序表两两合并,则可得n/4 个长为4的有序表依次重复,直到对 2个表长为n/2的有序表两两合并得 1个表长为n的 有序表为止。堆排序、堆调整(P62):初始时把要排序的n个数的序列看作是一棵顺序存储的二叉树(一维数组存储二叉树),调整它们的存储序,使之成为一个堆,将堆顶元素输出,得到n个元素中最小(或最大)的元素,这时堆的根节点的数最小(或者最大)。然后对前面(n-1)个元素重新调整使之成为堆,输出堆顶元素,得到n个元素中次小(或次大)的元素。依此类推,直到只有两个节点的堆, 并对 它们作交换,最后得到有 n个节点的有序序列。基数排序(P71

5、):不进行记录关键字的比较,借助多关键字排序的思想对单逻辑关键字进行排序。算法时间复杂度稳定性希尔排序O(n 1.3)不稳定快速排序O(nlogn)不稳定堆排序O(nlogn)不稳定宁归(合)并排序O(nlogn)稳定基数排序O(n)稳定第四章(考一个算法题,课后,不在书上)算法思想:基于归纳的递归算法解规模为n的问题P(n),归纳法的思想如下:1 .基础步:ai是问题P(1)的解2 .归纳步:对所有的k (1 k n),若ak是问题P(k)的解,则p(ak)是问题P(k+1)的解,其中p(ak)是对ak的某种运算或处理-可编辑修改-为求问题P(n)的解an,先求问题 P(n - 1)的解an

6、-i再对 an-1 进行 p(a n-1 )运算或处理,得到 an为求问题P(n T)的解an-i ,先求问题 P(n - 2)的解an-2再进行 p(a n-2 )运算或处理,得到 an-1如此等等,不断地进行递归求解,直到 P(i) 的解 ai 为止当得到 P(i) 的解之后,再回过头来,不断地把所得到的解进行 p 运算或处理,直到得到P(n) 的解为止分治法:对于一个规模为 n 的问题 p(n) ,可以把它分解为 k 个规模较小的子问题,这些子问题相互独立, 且结构与原来问题的结构相同。 在解这些子问题时, 又对每一个问题进一步的分解,直到某个阀值n 0 为止。递归地解决这些子问题,再把

7、各个子问题的解合并起来,就得到原来问题的解。分治法设计的 3 个步骤:i )划分步:把输入的问题实例划分为 k 个子问题。尽量使k 个子问题的规模大致相同。例如, k = 2 ,如最大最小问题取其中的一部分,而丢弃另一部分,如二叉检索问题用分治法处理的情况2 )治理步:由k 个递归调用组成3 )组合步:把k 个子问题的解组合起来算法思想、应用:快速排序(数据结构P269 ) :把序列就地划分为两个子序列,使第一个子序列的所有元素都小于第二个子序列的所有元素,不断地进行这样的划分,最后构成n 个子序列,每个子序列只有一个元素,这时,整个序列就是按递增顺序排序的序列了不稳定 选择算法:(P125)

8、1)选择问题:用递归方法以O(n)时间选取数组的中值元素、或任意的第k小元素的算法2)选择问题的思想方法:在递归调用的每一步,放弃固定部分的元素,对其余元素进行递归,使问题的规模以几何级数递减残缺棋盘问题(P131 ):把棋盘划分为四个区域,每个区域是一个 2k-1 X2k-1个方格的子棋盘,其中有一个是残缺子棋盘。用一个L型三格板覆盖在其余三个非残缺子棋盘的交界处,把覆盖一个2kx2k个方格的残缺棋盘,转化为覆盖 4个2k-1 X2k-1个方格的残缺子棋盘。对每一个子棋盘继续进行这样处理,直到要覆盖的子棋盘转化为2X2个方格的残缺子棋盘为止。这时只要用一个 L型三格板覆盖三个非残缺方格即可。

9、第五章(考一个算法题)可行解:满足约束方程的向量最优解:使目标函数达极值的向量贪婪发的设计思:贪婪算法采用的是逐步构造最优解的方法。从某个初始状态出发, 根据当前局部的而不是全局的最优决策 (因此所构造的可行解不一定是问题的最优解),以满足约束方程为条件、以使得目标函数的值增加最快或最慢为准则,选择一个能够最快地达到要求的输入元素(选择一旦做出,就不再更改),以便尽快地构成问题的可行解。作出这个局部最优 决策所依照的标准称为贪心准则。贪婪发求解步骤:首先根据问题确定约束条件和贪心准则,然后根据贪心准则获得当前每一步的最优解,最终得出解向量。贪婪法求解的问题需满足 2 个性质:1 )贪心选择性质

10、:指所求问题的整体最优解可以通过一系列局部最优的选择来达到2 )最优子结构性质:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。算法思想、应用:狄斯奎诺:( P146 )贪心算法:Dijkstra提出按路径长度递增的次序产生最短路径。贪心准则:使当前已经加入的所有路径的长度之和最小。 为了符合这一准则, 其中每一条单独的路径都必须具有最小的长度。最小生成树的应用: ( P151 )克鲁斯卡尔,普里姆哈夫曼中的一个基本概念( P159 )第六章最优性原理: 无论过程的初始状态和初始决策是什么, 其余决策都必须相对于初始决策所产生的状态,构成一个最优决策序列多段图的概念、应用

11、、求最短路径有向连通赋权图 G = ,顶点集合 V划分成k个不相交的子集vi, 1 i k, k 2,使得E中的任一边(u, v),必有u Vi, vVi+m , m R 1 ,称G为多段图。数塔问题的应用: 如图所示的一个数塔, 从顶部出发, 在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的数值和最大。算法思想、应用:0/1 背包(P190 )第七章(考一个算法题,一个简答题)回溯法的基本思想:在确定了解空间的组织结构后,回溯法就从开始结点(根结点)出发,以深度优先的方式搜索整个解空间。这个开始结点就成为一个活结点,同时也成为当前的扩展结点。在当前的扩展结点处,

12、 搜索向纵深方向移至一个新结点。这个新结点就成为一个新的活结点,并成为当前扩展结点。 如果在当前的扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。 换句话说,这个结点不再是一个活结点。 此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点。回溯法即以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已没有活结点时为止。回溯法的求解步骤1)对所给定的问题,定义问题的解空间2)确定状态空间树的结构3 )用深度优先搜索方法搜索解空间,用约束方程和目标函数的界对状态空间树进行修剪,生成搜索树,取得问题的解。状态空间树:问题解空间的树形式表示活结点:所搜

13、索到的结点不是叶结点,且满足约束条件和目标函数的界,其儿子结点还未全部搜索完毕扩展结点:正在搜索其儿子结点的结点,它也是一个活结点;死结点:不满足约束条件、目标函数、或其儿子结点已全部搜索完毕的结点、或者叶结点。算法思想、判定函数,如何判定(约束方程)n 后问题( P208 )图的着色问题( P212 )哈密尔顿回路问题( P216 )简答题考算法思想之类的。应用题考排序、 以上各种算法的应用 (要求写求解步骤嗯,排序只求移动次数,不求比较次数) 。算法题预测题:* 1 设计一个分支算法,求二叉树的高度。int Height(BTree t)int h1,h2;if(t=NULL) retur

14、n 0;else-可编辑修改-h1=Height(t-lchild)+1;h2=Height(t-rchild)+1;return h1h2?h1:h2;* 2 假定用面值为 2 角 5 分、 1 角、 5 分、 1 分的硬币,来支付 n 分钱。设计一个算法,使付出的枚数最少( n 由键盘输入)void solve(int p,int x,int n)int i;for(i=0;i4;i+)xi=n/pi;n=n%pi;* 3对于给定的邮箱网G,求网中指定的顶点v到其余各顶点的最短路径。P147* 4 n 后问题 (P210 )5 图的着色问题( P214 )6 哈密尔顿回路问题( P217 )THANKS !致力为企业和个人提供合同协议, 策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考-可编辑修改-

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!