算法设计与分析考试重点归纳.docx
- 文档编号:10796546
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:9
- 大小:24.48KB
算法设计与分析考试重点归纳.docx
《算法设计与分析考试重点归纳.docx》由会员分享,可在线阅读,更多相关《算法设计与分析考试重点归纳.docx(9页珍藏版)》请在冰豆网上搜索。
算法设计与分析考试重点归纳
算法设计考试重点整理
题型:
一选择题(10*2=20分)
二简答题(4*5=20分)
三应用题(3*10=30分)
四算法题(3*10=30分)
第一、二章
算法的定义:
解某一特定问题的一组有穷规则的集合(对特定问题求解步骤的一种描述,是指令的有限序列)
算法的特征:
1)有限性2)确定性3)输入4)输出5)能行性
算法分析的目的:
基本数据结构:
线性结构(元素之间是一对一的关系)
用顺序存储结构存储的线性表称为顺序表
用链式存储结构存储的线性表称为链表。
树形结构(元素之间是一对多的关系)
图(网)状结构(元素之间是多对多的关系)
栈:
是一种只允许在表的一端进行插入或删除操作的线性表。
允许进行插入、删除操作的一端称为栈顶,另一端称为栈底。
当栈中没有数据元素时,称之为空栈。
栈的插入操作称为进压栈,删除操作称为出栈。
队列:
只允许在一端进行插入操作,在另一端进行删除操作的线性表。
允许进行插入操作的一端称为队尾。
允许进行删除操作的一端称为队头。
当队列中没有数据元素时,称之为空队列。
队列的插入操作称为进队或入队。
队列的删除操作称为退队或出队。
树:
树型结构是一种非线性结构,它用于描述数据元素之间的层次关系图
图:
G=(V,E)是一个二元组
其中:
V是图G中数据元素(顶点)的非空有限集集合
E是图G中关系的有限集合
由表达式求渐进表达式:
例:
(n2+n)/4n2/4(增长速率最快的那一项)
时间复杂度的计算:
(P23)
性能的比较:
O
(1) 第三章 算法思想、稳定性、时间复杂度、应用、排序的移动次数: 希尔排序(数据结构P265): 先将待排序列分割为若干个子序列分别进行直接插入排序;待整个序列基本有序时,再对全体记录进行一次直接插入排序。 也称缩小增量的直接插入排序。 希尔排序的时间复杂度在O(nlog2n)和O(n2)之间,大致为O(n1.3) 合并排序(P59): 设初始序列含有n个记录,则可看成n个表长为1的有序表将这n个有序表两两合并,则可得n/2个表长为2的有序表再将这n/2个有序表两两合并,则可得n/4个长为4的有序表依次重复,直到对2个表长为n/2的有序表两两合并得1个表长为n的有序表为止。 堆排序、堆调整(P62): 初始时把要排序的n个数的序列看作是一棵顺序存储的二叉树(一维数组存储二叉树),调整它们的存储序,使之成为一个堆,将堆顶元素输出,得到n个元素中最小(或最大)的元素,这时堆的根节点的数最小(或者最大)。 然后对前面(n-1)个元素重新调整使之成为堆,输出堆顶元素,得到n个元素中次小(或次大)的元素。 依此类推,直到只有两个节点的堆,并对它们作交换,最后得到有n个节点的有序序列。 基数排序(P71): 不进行记录关键字的比较,借助多关键字排序的思想对单逻辑关键字进行排序。 算法 时间复杂度 稳定性 希尔排序 O(n1.3) 不稳定 快速排序 O(nlogn) 不稳定 堆排序 O(nlogn) 不稳定宁 归(合)并排序 O(nlogn) 稳定 基数排序 O(n) 稳定 第四章(考一个算法题,课后,不在书上) 算法思想: 基于归纳的递归算法解规模为n的问题P(n),归纳法的思想如下: 1.基础步: a1是问题P (1)的解 2.归纳步: 对所有的k(1 则p(ak)是问题P(k+1)的解, 其中p(ak)是对ak的某种运算或处理 为求问题P(n)的解an,先求问题P(n–1)的解an-1 再对an-1进行p(an-1)运算或处理,得到an 为求问题P(n–1)的解an-1,先求问题P(n–2)的解an-2 再进行p(an-2)运算或处理,得到an-1 如此等等,不断地进行递归求解,直到P (1)的解a1为止 当得到P (1)的解之后,再回过头来,不断地把所得到的解进行p运算或处理,直到得到P(n)的解为止 分治法: 对于一个规模为n的问题p(n),可以把它分解为k个规模较小的子问题,这些子问题相互独立,且结构与原来问题的结构相同。 在解这些子问题时,又对每一个问题进一步的分解,直到某个阀值n0为止。 递归地解决这些子问题,再把各个子问题的解合并起来,就得到原来问题的解。 分治法设计的3个步骤: 1)划分步: 把输入的问题实例划分为k个子问题。 尽量使k个子问题的规模大致相同。 例如,k=2,如最大最小问题 取其中的一部分,而丢弃另一部分,如二叉检索问题用 分治法处理的情况 2)治理步: 由k个递归调用组成 3)组合步: 把k个子问题的解组合起来 算法思想、应用: 快速排序(数据结构P269): 把序列就地划分为两个子序列,使第一个子序列的所有元素都小于第二个子序列的所有元素,不断地进行这样的划分,最后构成n个子序列,每个子序列只有一个元素,这时,整个序列就是按递增顺序排序的序列了 不稳定 选择算法: (P125) 1)选择问题: 用递归方法以O(n)时间选取数组的中值元素、或任意的第k小元素的算法 2)选择问题的思想方法: 在递归调用的每一步,放弃固定部分的元素,对其余元素进行递归,使问题的规模以几何级数递减 残缺棋盘问题(P131): 把棋盘划分为四个区域,每个区域是一个2k-1×2k-1个方格的子棋盘,其中 有一个是残缺子棋盘。 用一个L型三格板覆盖在其余三个非残缺子棋盘的交界处,把覆盖一个2k×2k个方格的残缺棋盘,转化为覆盖4个2k-1×2k-1个方格的残缺子棋盘。 对每一个子棋盘继续进行这样处理,直到要覆盖的子棋盘转化为2×2个方格的残缺子棋盘为止。 这时只要用一个L型三格板覆盖三个非残缺方格即可。 第五章(考一个算法题) 可行解: 满足约束方程的向量 最优解: 使目标函数达极值的向量 贪婪发的设计思: 贪婪算法采用的是逐步构造最优解的方法。 从某个初始状态出发,根据当前局部的而不是全局的最优决策(因此所构造的可行解不一定是问题的最优解),以满足约束方程为条件、以使得目标函数的值增加最快或最慢为准则,选择一个能够最快地达到要求的输入元素(选择一旦做出,就不再更改),以便尽快地构成问题的可行解。 作出这个局部最优决策所依照的标准称为贪心准则。 贪婪发求解步骤: 首先根据问题确定约束条件和贪心准则,然后根据贪心准则获得当前每一步的最优解,最终得出解向量。 贪婪法求解的问题需满足2个性质: 1)贪心选择性质: 指所求问题的整体最优解可以通过一系列局部最优的选择来达到 2)最优子结构性质: 当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。 算法思想、应用: 狄斯奎诺: (P146) 贪心算法: Dijkstra提出按路径长度递增的次序产生最短路径。 贪心准则: 使当前已经加入的所有路径的长度之和最小。 为了符合这一准则,其中每一条单独的路径都必须具有最小的长度。 最小生成树的应用: (P151)克鲁斯卡尔,普里姆 哈夫曼中的一个基本概念(P159) 第六章 最优性原理: 无论过程的初始状态和初始决策是什么,其余决策都必须相对于初始决策所产生的状态,构成一个最优决策序列 多段图的概念、应用、求最短路径 有向连通赋权图G= 数塔问题的应用: 如图所示的一个数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的数值和最大。 算法思想、应用: 0/1背包(P190) 第七章(考一个算法题,一个简答题) 回溯法的基本思想: 在确定了解空间的组织结构后,回溯法就从开始结点(根结点)出发,以深度优先的方式搜索整个解空间。 这个开始结点就成为一个活结点,同时也成为当前的扩展结点。 在当前的扩展结点处,搜索向纵深方向移至一个新结点。 这个新结点就成为一个新的活结点,并成为当前扩展结点。 如果在当前的扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。 换句话说,这个结点不再是一个活结点。 此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点。 回溯法即以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已没有活结点时为止。 回溯法的求解步骤 1)对所给定的问题,定义问题的解空间 2)确定状态空间树的结构 3)用深度优先搜索方法搜索解空间,用约束方程和目标函数的界对状态空间树进行修剪,生成搜索树,取得问题的解。 状态空间树: 问题解空间的树形式表示 活结点: 所搜索到的结点不是叶结点,且满足约束条件和目标函数的界,其儿子结点还 未全部搜索完毕 扩展结点: 正在搜索其儿子结点的结点,它也是一个活结点; 死结点: 不满足约束条件、目标函数、或其儿子结点已全部搜索完毕的结点、或者叶结点。 算法思想、判定函数,如何判定(约束方程) n后问题(P208) 图的着色问题(P212) 哈密尔顿回路问题(P216) 简答题考算法思想之类的。 应用题考排序、以上各种算法的应用(要求写求解步骤嗯,排序只求移动次数,不求比较次数)。 算法题预测题: *1设计一个分支算法,求二叉树的高度。 intHeight(BTreet){ inth1,h2; if(t==NULL)return0; else{ h1=Height(t->lchild)+1; h2=Height(t->rchild)+1; returnh1>h2? h1: h2; } } *2假定用面值为2角5分、1角、5分、1分的硬币,来支付n分钱。 设计一个算法,使付出的枚数最少(n由键盘输入) voidsolve(intp[],intx[],intn){ inti; for(i=0;i<4;i++){ x[i]=n/p[i]; n=n%p[i]; } } *3对于给定的邮箱网G,求网中指定的顶点v到其余各顶点的最短路径。 P147 *4n后问题(P210) 5图的着色问题(P214) 6哈密尔顿回路问题(P217) THANKS! ! ! 致力为企业和个人提供合同协议,策划案计划书,学习课件等等 打造全网一站式需求 欢迎您的下载,资料仅供参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 考试 重点 归纳