当前位置:文档之家› 算法设计与分析期末备考知识点总结

算法设计与分析期末备考知识点总结

●通俗地讲,算法是解决问题的方法,严格地说,算法是对特定问题求解步骤的一种描述,

是指令的有限序列。

●算法还必须满足一下五个重要特性:输入、输出、有穷性、确定性、可行性。

●程序(Program)是对一个算法使用某种程序设计语言的具体实现,原则上,算法可以

用任何一种程序设计语言来实现。

什么是算法的计算复杂性?

●算法分析指的是对算法所需要的两种计算机资源——时间和空间(时间复杂性和空间复

杂性进行估算,所需要的资源越多,该算法的复杂性就越高。

●表示计算复杂性的O你掌握了?

若存在两个正的常数c和n0,对于任意n≥n0,都有T(n)≤c×f(n),则称T(n)=O(f(n))(或称算法在O(f(n))中)。

我们主要介绍了哪几种算法设计方法?

分治法:将一个难以直接解决的大问题,分割成一些规模较小的子问题,以便各个击破,分而治之。

减治法:减治法在将原问题分解为若干个子问题后,利用了规模为n的原问题的解与较小规模(通常是n/2)的子问题的解之间的关系,这种关系通常表现为:

(1)原问题的解只存在于其中一个较小规模的子问题中;

(2)原问题的解与其中一个较小规模的解之间存在某种对应关系。

由于原问题的解与较小规模的子问题的解之间存在这种关系,所以,只需求解其中

一个较小规模的子问题就可以得到原问题的解。

动态规划法、贪心算法、回溯算法、概率

RAM程序

分治法------合并排序

设算法4.3对n个元素排序的时间复杂性为T(n),则该二路归并排序算法存在如下递推式:

二路归并排序的时间代价是O(nlog2n)。

所需空间只要O(m+n+min(m, n))的空间就够了(假设两个合并串的长度分别为m和n)。

分治法------快速排序

在最好情况下在具有n个记录的序列中,一次划分需要对整个待划分序列扫描一遍,则所需时间为O(n)。时间复杂度为O(nlog2n)。

在最坏情况下必须经过n-1次递归调用才能把所有记录定位,而且第i趟划分需要经过n-i 次关键码的比较才能找到第i个记录的基准位置,因此,总的比较次数为:

时间复杂度为O(n2)

分治法------最大子段

递推式:算法时间复杂度:O(nlog2n)

分治法------棋盘覆盖问题

T(k)满足如下递推式:

分治法------循环赛日安排问题

基本语句的执行次数是:

算法的其时间复杂性为O(4k)。

顺序统计问题:

算法1找出n个元素中的第k个最小元素

输入:从一个有线性序的集合中抽出的n个元素的序列S及一个整数k,1≤k≤n。输出:S中的第k个最小元素

算法2

算法2的期望时间是O(n)。最坏情况O(n2)

减治-----插入排序(手工题)

堆的概念:

n个元素的序列{K1,K2,…..Kn},当且仅当满足

动态规划求解TSP问题

注:用动态规划解决TSP问题,算法的时间复杂性为O(n22n)。和蛮力法相比,动态规划法求解TSP问题,把原来的时间复杂性是O(n!)的排列问题,转化为组合问题,从而降低了算法的时间复杂性,但它仍需要指数时间。但遗

憾的是这一动态规划算法需要O(n2n)的空间。当n较大时,空间难以满足。多段图的最短路径算法:

1.For (i=1; i<=n; i++)

COST[i]=0;初始化:数组cost[n]初始化为最大值,数组path[n]初始化为-1;2.for (i=n-2; i>=0; i--)

2.1 对顶点i的每一个邻接点j,根据

cost[i]=min{cij+cost[j]} (i≤j≤n且顶点j是顶点i的邻接点)计算cost[i];

2.2 根据path[i]=使cij+cost[j]最小的j 计算path[i];

3.输出最短路径长度cost[0];

4. 输出最短路径经过的顶点:

4.1 i=0

4.2 循环直到path[i]=n-1

4.2.1 输出path[i];

4.2.2 i=path[i];

最优二叉查找树算法:

最优二叉查找树是以这n个记录构成的二叉查找树中具有最少平均比较次数的二叉查找树,即最小,其中pi是记录ri的查找概率,ci是在二叉查找树中查找ri的比较次数。

回溯法----解空间树的动态搜索过程

注:搜索过程中,采用两种策略避免无效搜索:

1.用约束条件剪去得不到可行解的子树;

2.用目标函数剪去得不到最优解的子树。

例一:对于n=3的0/1背包问题,三个物品的重量为{20, 15, 10},价值为{20, 30, 25},背包容量为25,从图8.2所示的解空间树的根结点开始搜索,搜索过程如下:

(注:树枝左侧为1,右侧为0,1代表装包,0代表不装包,从上到下每一层代表一个物体) 例二:对于n=4的TSP问题,解空间树如下:代价矩阵C如下:

1.目标函数初始化为∞;

2.从结点1选择第1棵子树到结点2,表示在图中从顶点1出发;

3.从结点2选择第1棵子树到达结点3,表示在图中从顶点1到顶点2,依代

价矩阵可知路径长度为3;

4.从结点3选择第1棵子树到达结点4,表示在图中从顶点2到顶点3,依代

价矩阵可知路径长度为3+2=5;

5.从结点4选择唯一的一棵子树到结点5,表示在图中从顶点3到顶点4,路

径长度为5+2=7,结点5是叶子结点,找到了一个可行解,路径为1→2→3→4→1,路径长度为7+3=10,目标函数值10成为新的下界,也就是目前的最优解;

6.从结点5回溯到结点4,再回溯到结点3,选择结点3的第2棵子树到结点6,

表示在图中从顶点2到顶点4,路径长度为3+8=11,超过目标函数值10,因此,对以结点6为根的子树实行剪枝;

搜索后的结果图:

回溯法----图着色问题的算法

用m种颜色为一个具有n个顶点的无向图着色

设数组color[n]表示顶点的着色情况,回溯法求解m着色问题的算法如下:

回溯法----n皇后问题的算法

excel期末知识点总结

1.文件的建立与打开: office图表新建新工作簿确定 打开 2.文件的保存与加密保存: office图表保存 xls 准备加密文档输入密码确定再次输入并确定 3.强制换行:alt+enter 4.删除与清除:删除整个单元格,清除格式、内容、批注 5.填充序列: 等差等比: 在单元格中输入起始值开始填充序列选择等差等比、行列输入步长值、终止值 文字序列: 在单元格输入文字序列 office按钮 excel选项常用编辑自定义序列选中刚才输入的文字序列导入确定6.复制移动: 移动覆盖左键拖拽 复制移动覆盖 ctrl+左键拖拽 移动插入 shift+左键拖拽 复制移动插入 ctrl+shift+左键拖拽 7.插入行列:选中要插入数量的行或列右键插入 8.为行、列、单元格命名: 先选中要命名的区域在左上角的名称框内输入名字 直观,快速选定 如何删除名称:公式名称管理器选中删除 9.批注:单击单元格审阅新建批注 10.科学计数法: >=12位用科计表示 123456789012=1.234567E+11 1.A3=R3C1 R为行C为列 C1 C2 C3 R1 R2 R3A3 2.数组运算Ctrl+Shift+Enter 3.将某一函数,作为另一函数的参数调用。最多可以嵌套七层 COUNT(参数1,参数2,…)功能:求一系列数据中数值型数据的个数。 COUNTA(参数1,参数2,…)功能:求“非空”单元格的个数。 COUNTBLANK(参数1,参数2,…)功能:求“空”单元格的个数。 COUNTIF功能:求符合条件的单元格数 4.四舍五入函数ROUND(number, num_digits) =ROUND(1234.567,2)=1234.57 =ROUND(1234.567,1)=1234.6 =ROUND(1234.567,0)=1235 =ROUND(1234.567,-1)=1230 =ROUND(1234.567,-2)=1200 负的往左,正的往右

期末考试总复习知识点总结

期末考试总复习知识点总结 一、课本四字成语篇 昂首东望若隐若现风平浪静水天相接横贯江面齐头并进漫天卷地引人注意毫不可惜随遇而安 鲜花盛开绿树成阴鲜果飘香狂风大作雪花飞舞草翠花开局促不安毫不相让一日三餐从容不迫 扬长而去空空如也供养不周不胜其烦架子十足屏息凝视变化多端枝折花落气魄雄伟神清气爽 金碧辉煌隐隐约约姿态不一山洪暴发清波漾漾理所当然谈何容易平安无事突如其来骨肉同胞 血脉亲情帝国主义灯红酒绿热闹非凡风和日丽耀武扬威得意扬扬振兴中华呼风唤雨 出乎意料腾云驾雾归根到底欣喜若狂形态各异人声鼎沸山崩地裂不容置疑神秘莫测神来之笔 千姿百态人迹罕至尺有所短寸有所长用武之地美味佳肴应接不暇坐卧不安消磨时光不可思议精神大振枉费心机引吭大叫慢条斯理趁其不备神态自若浩如烟海枯枝败叶久经沙场南征北战所向披靡若有所思殊死拼搏号啕大哭恍然大悟协调有序形单影只和睦相处患难与共受益匪浅 年少气盛年逾古稀筋疲力尽铿锵有力二、词语类

型篇 ⑴ AA :①哗哗②呼呼③呱呱④咩咩⑤喔喔⑥叽叽⑵ ABB:①白花花②亮晶晶③胖乎乎④绿油油⑤乐呵呵⑹水汪汪1 ⑶ AABB:高高兴兴舒舒服服来来往往明明白白严严实实⑷ ABAB:商量商量收拾收拾讨论讨论研究研究走动走动考虑考虑⑸ AABC:心心相印彬彬有礼井井有条恋恋不舍楚楚动人落落大方⑹ ABCC:得意扬扬空空如也生机勃勃可怜巴巴无所事事人影绰绰⑺ ABAC:不闻不问不知不觉不紧不慢不慌不忙不三不四三、成语特点篇 1、含反义词的成语——远近闻名、积少成多、左邻右舍、里应外合、黑白相间、头重脚轻 2、含近义词的成语——生龙活虎胡言乱语东奔西走千言万语 3、表示高兴的成语——兴高采烈眼开眼笑欣喜若狂喜出望外扬眉吐气 4、三字俗语——红眼病、摔跟斗、笑面虎、碰钉子、墙头草、顺风耳、千里目 5、表示性格特点的成语——活泼可爱能说会道温柔体贴心灵手巧虚心好学精明能干 6、关于动物的成语

中科院陈玉福计算机算法设计与分析期末简答题答案

1. 贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势? 共通点:动态规划和贪心算法都是一种递推算法,均有局部最优解来推导全局最优解 区别:贪心算法中,作出的每步贪心决策都无法改变,每一步的最优解一定包含上一步的 最优解,而上一部之前的最优解则不作保留。 动态优化算法,全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解 动态规划算法利用子问题重叠性质,对每一个子问题只计算一次,将其解保存在一个表格中。不同的子问题个数随着输入问题的规模呈多项式增长,因此,动态规划算法通常只需要多项式时间,从而获得较高的解题效率。但它需要计算之前所有情况花费,更加耗费空间。 贪心算法所作的选择依赖于以往所作过的选择,但决不依赖于将来的选择,这使得算法在编 码和执行过程中都有一定的速度优势。贪心算法是只是找局部最优解,不一定是全局最优解。 2. 试比较回溯法与分枝限界算法,分别谈谈这两个算法比较适合的问题? 二者都是在解空间树里搜索问题的可靠解或最优解,但是搜索的方式不同,回溯法采用深 度优先的方式,直到达到问题的一个可行解,或经判断沿此路径不会达到问题的可行解或最优解时,停止向前搜索,并沿原路返回到该路径上最后一个还可扩展的节点,然后,从该节点出发朝新的方向纵深搜索。分枝限界法采用的是宽度优先的方式,它将活节点存放在一个特殊的表中,其策略是,在扩展节点处,首先生成其所有的儿子节点,将那些导致不可行解或导致非最优解的儿子节点舍弃,其余儿子节点加入活节点表中,然后,从活节点中取出一个节点作为当前扩展节点,重复上述节点中扩展过程。可以看出,回溯法一般用于求问题的一个可行解,而分枝限界可以用于求出问题的所有可行解。 3. 何谓最优化原理?采用动态规划算法必须满足的条件是什么?动态规划算法是通过什 么问题的什么特性提高效率的? 一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。最优子结构性质,子问题重叠性质是计算模型采用动态规划算法求解的两个基本要素。 动态规划算法利用子问题重叠性质,对每一个子问题只计算一次,将其解保存在一个表格中。不同的子问题个数随着输入问题的规模呈多项式增长,因此,动态规划算法通常只需要多项式时间,从而获得较高的解题效率 4. 什么是多项式时间算法? 若存在一个常数C,使得对于所有n>=0,都有|f(n)| <= C*|g(n)|,则称函数f(n)是O(g(n))。时间复杂度是O(p(n))的算法称为多项式时间算法,这里p(n)是关于n的多项式。 时间复杂度为O(nlog(n))、O(n^3)的算法都是多项式时间算法,时间复杂度为O(n^log(n))、O(n!)、O(2^n)的算法是指数时间算法。 一个优化问题如果已经找到了多项式时间算法,则称该问题为多项式时间可解问题,并 将这类问题的集合记为P,因此多项式时间可解问题就称为P类问题。。

考研数据结构必须掌握的知识点与算法-打印版

《数据结构》必须掌握的知识点与算法 第一章绪论 1、算法的五个重要特性(有穷性、确定性、可行性、输入、输出) 2、算法设计的要求(正确性、可读性、健壮性、效率与低存储量需求) 3、算法与程序的关系: (1)一个程序不一定满足有穷性。例操作系统,只要整个系统不遭破坏,它将永远不会停止,即使没有作业需要处理,它仍处于动态等待中。因此,操作系统不是一个算法。 (2)程序中的指令必须是机器可执行的,而算法中的指令则无此限制。算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。 (3)一个算法若用程序设计语言来描述,则它就是一个程序。 4、算法的时间复杂度的表示与计算(这个比较复杂,具体看算法本身,一般关心其循环的次数与N的关系、函数递归的计算) 第二章线性表 1、线性表的特点: (1)存在唯一的第一个元素;(这一点决定了图不是线性表) (2)存在唯一的最后一个元素; (3)除第一个元素外,其它均只有一个前驱(这一点决定了树不是线性表) (4)除最后一个元素外,其它均只有一个后继。 2、线性表有两种表示:顺序表示(数组)、链式表示(链表),栈、队列都是线性表,他们都可以用数组、链表来实现。 3、顺序表示的线性表(数组)地址计算方法: (1)一维数组,设DataType a[N]的首地址为A0,每一个数据(DataType类型)占m个字节,则a[k]的地址为:A a[k]=A0+m*k(其直接意义就是求在数据a[k]的前面有多少个元素,每个元素占m个字节) (2)多维数组,以三维数组为例,设DataType a[M][N][P]的首地址为A000,每一个数据(DataType 类型)占m个字节,则在元素a[i][j][k]的前面共有元素个数为:M*N*i+N*j+k,其其地址为: A a[i][j][k]=A000+m*(M*N*i+N*j+k); 4、线性表的归并排序: 设两个线性表均已经按非递减顺序排好序,现要将两者合并为一个线性表,并仍然接非递减顺序。可见算法2.2 5、掌握线性表的顺序表示法定义代码,各元素的含义; 6、顺序线性表的初始化过程,可见算法2.3 7、顺序线性表的元素的查找。 8、顺序线性表的元素的插入算法,注意其对于当原来的存储空间满了后,追加存储空间(就是每次增加若干个空间,一般为10个)的处理过程,可见算法2.4 9、顺序线性表的删除元素过程,可见算法2.5 10、顺序线性表的归并算法,可见算法2.7 11、链表的定义代码,各元素的含义,并能用图形象地表示出来,以利分析; 12、链表中元素的查找 13、链表的元素插入,算法与图解,可见算法2.9 14、链表的元素的删除,算法与图解,可见算法2.10 15、链表的创建过程,算法与图解,注意,链表有两种(向表头生长、向表尾生长,分别用在栈、队列中),但他们的区别就是在创建时就产生了,可见算法2.11 16、链表的归并算法,可见算法2.12 17、建议了解所谓的静态单链表(即用数组的形式来实现链表的操作),可见算法2.13 18、循环链表的定义,意义 19、循环链表的构造算法(其与单链表的区别是在创建时确定的)、图解

算法设计与分析试卷(2010)

算法设计与分析试卷(A 卷) 一、 选择题 ( 选择1-4个正确的答案, 每题2分,共20分) (1)计算机算法的正确描述是: B 、D A .一个算法是求特定问题的运算序列。 B .算法是一个有穷规则的集合,其中之规则规定了一个解决某一特定类型的问题的运算序列。 C .算法是一个对任一有效输入能够停机的图灵机。 D .一个算法,它是满足5 个特性的程序,这5个特性是:有限性、确定性、能 行性、有0个或多个输入且有1个或多个输出。 (2)影响程序执行时间的因素有哪些? C 、D A .算法设计的策略 B .问题的规模 C .编译程序产生的机器代码质量 D .计算机执行指令的速度 (3)用数量级形式表示的算法执行时间称为算法的 A A .时间复杂度 B .空间复杂度 C .处理器复杂度 D .通信复杂度 (4)时间复杂性为多项式界的算法有: A .快速排序算法 B .n-后问题 C .计算π值 D .prim 算法 (5)对于并行算法与串行算法的关系,正确的理解是: A .高效的串行算法不一定是能导出高效的并行算法 B .高效的串行算法不一定隐含并行性 C .串行算法经适当的改造有些可以变化成并行算法 D. 用串行方法设计和实现的并行算法未必有效 (6)衡量近似算法性能的重要标准有: A A .算法复杂度 B .问题复杂度 C .解的最优近似度 D .算法的策略 (7)分治法的适用条件是,所解决的问题一般具有这些特征: ABCD A .该问题的规模缩小到一定的程度就可以容易地解决; B .该问题可以分解为若干个规模较小的相同问题; C .利用该问题分解出的子问题的解可以合并为该问题的解 D .该问题所分解出的各个子问题是相互独立的。 (8)具有最优子结构的算法有: A .概率算法 B .回溯法 C .分支限界法 D .动态规划法 (9)下列哪些问题是典型的NP 完全问题: A .排序问题 B .n-后问题 C .m-着色问题 D .旅行商问题 (10)适于递归实现的算法有: C A .并行算法 B .近似算法 C .分治法 D .回溯法 二、算法分析题(每小题5分,共10分) (11)用展开法求解递推关系: (12)分析当输入数据已经有序时快速排序算法的不足,提出算法的改进方案。 ???>+-==1 1)1(211)(n n T n n T

最新算法设计与分析复习要点(1)

算法设计与分析的复习要点 第一章:算法问题求解基础 算法是对特定问题求解步骤的一种描述,它是指令的有限序列。 一.算法的五个特征: 1.输入:算法有零个或多个输入量; 2.输出:算法至少产生一个输出量; 3.确定性:算法的每一条指令都有确切的定义,没有二义性; 4.可行性:算法的每一条指令必须足够基本,它们可以通过已经实现的基本运算执行有限次来实现; 5.有穷性:算法必须总能在执行有限步之后终止。 二.什么是算法?程序与算法的区别 1.笼统地说,算法是求解一类问题的任意一种特殊的方法;较严格地说,算法是对特定问题求解步骤的一种描述,它是指令的有限序列。 2.程序是算法用某种程序设计语言的具体实现;算法必须可终止,程序却没有这一限制;即:程序可以不满足算法的第5个性质“有穷性”。 三.一个问题求解过程包括:理解问题、设计方案、实现方案、回顾复查。 四.系统生命周期或软件生命周期分为: 开发期:分析、设计、编码、测试;运行期:维护。 五.算法描述方法:自然语言、流程图、伪代码、程序设计语言等。 六.算法分析:是指对算法的执行时间和所需空间的估算。算法的效率通过算法分析来确定。 七.递归定义:是一种直接或间接引用自身的定义方法。一个合法的递归定义包括两部分:基础情况和递归部分; 基础情况:以直接形式明确列举新事物的若干简单对象; 递归部分:有简单或较简单对象定义新对象的条件和方法 八.常见的程序正确性证明方法: 1.归纳法:由基础情况和归纳步骤组成。归纳法是证明递归算法正确性和进行算法分析的强有力工具; 2.反证法。 第二章:算法分析基础 一.会计算程序步的执行次数(如书中例题程序2-1,2-2,2-3的总程序步数的计算)。二.会证明5个渐近记法。(如书中P22-25例2-1至例2-9) 三.会计算递推式的显式。(迭代法、代换法,主方法) 四.会用主定理求T(n)=aT(n/b)+f(n)。(主定理见P29,如例2-15至例2-18)五.一个好的算法应具备的4个重要特征: 1.正确性:算法的执行结果应当满足预先规定的功能和性能要求; 2.简明性:算法应思路清晰、层次分明、容易理解、利于编码和调试; 3.效率:算法应有效使用存储空间,并具有高的时间效率; 4.最优性:算法的执行时间已达到求解该类问题所需时间的下界。 六.影响程序运行时间的主要因素: 1.程序所依赖的算法; 2.问题规模和输入数据规模; 3.计算机系统性能。 七.1.算法的时间复杂度:是指算法运行所需的时间;

java期末考试知识点总结

java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。

高二数学期末复习知识点总结复习课程

高二数学期末复习知识点总结 一、直线与圆: 1、直线的倾斜角α的范围是[0,π) 在平面直角坐标系中,对于一条与x 轴相交的直线l ,如果把x 轴绕着交点按逆时针方向转到和直线l 重合时所转的最小正角记为α,α就叫做直线的倾斜角。当直线l 与x 轴重合或平行时,规定倾斜角为0; 2、斜率:已知直线的倾斜角为α,且α≠90°,则斜率k =tan α. 过两点(x 1,y 1),(x 2,y 2)的直线的斜率k=( y 2-y 1)/(x 2-x 1),另外切线的斜率用求导的方法。 3、直线方程:⑴点斜式:直线过点00(,)x y 斜率为k ,则直线方程为 00()y y k x x -=-, ⑵斜截式:直线在y 轴上的截距为b 和斜率k ,则直线方程为y kx b =+ 4、111:l y k x b =+,222:l y k x b =+,①1l ∥2l 21k k =?,21b b ≠; ②12121l l k k ⊥?=-. 直线1111:0l A x B y C ++=与直线2222:0l A x B y C ++=的位置关系: (1)平行? A 1/A 2=B 1/B 2 注意检验 (2)垂直? A 1A 2+B 1B 2=0 5、点00(,)P x y 到直线0Ax By C ++=的距离公式d 两条平行线 10Ax By C ++=与20Ax By C ++=的距离是d = 6、圆的标准方程:222()()x a y b r -+-=.⑵圆的一般方程:22 0x y Dx Ey F ++++= 注意能将标准方程化为一般方程 7、过圆外一点作圆的切线,一定有两条,如果只求出了一条,那么另外一条就是与x 轴垂直的直线. 8、直线与圆的位置关系,通常转化为圆心距与半径的关系,或者利用垂径定理,构造直角三角形解决弦长问题.①d r >?相离 ②d r =?相切 ③d r b>0)注意还有一个;②定义: |PF 1|+|PF 2|=2a>2c ; ③ e=22a b 1a c -= ④长轴长为2a ,短轴长为2b ,焦距为2c ; a 2=b 2+c 2 ; 2、双曲线:①方程1b y a x 22 22=-(a,b>0) 注意还有一个;②定义: ||PF 1|-|PF 2||=2a<2c ; ③ e=22a b 1a c +=;④实轴长为2a ,虚轴长为2b ,焦距为2c ; 渐进线0b y a x 2222=-或x a b y ±= c 2=a 2+b 2 3、抛物线 :①方程y 2 =2px 注意还有三个,能区别开口方向; ②定义:|PF|=d 焦点F(2 p ,0),准线 x=-2p ;③焦半径2 p x AF A +=; 焦点弦AB =x 1+x 2+p ; 4、直线被圆锥曲线截得的弦长公式: 5、注意解析几何与向量结合问题:1、11(,)a x y =,22(,)b x y =. (1)1221//0a b x y x y ?-=; (2)121200a b a b x x y y ⊥??=? +=. 2、数量积的定义:已知两个非零向量a 和b ,它们的夹角为θ,则数量|a ||b |cos θ叫做a 与b 的数量积,记作a ·b ,即1212||||cos a b a b x x y y θ?==+ 3、模的计算:|a |=2 a . 算模可以先算向量的平方 4、向量的运算过程中完全平方公式等照样适用:如() a b c a c b c +?=?+?

计算机算法设计与分析期末考试复习题

1、二分搜索算法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 2、下列不是动态规划算法基本步骤的是( A )。 A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解 3、最大效益优先是( A )的一搜索方式。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 4、最长公共子序列算法利用的算法是( B )。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 5. 回溯法解TSP问题时的解空间树是( A )。 A、子集树 B、排列树 C、深度优先生成树 D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 7、衡量一个算法好坏的标准是(C )。 A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短 8、以下不可以使用分治法求解的是(D )。 A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1背包问题 9. 实现循环赛日程表利用的算法是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 10、实现最长公共子序列利用的算法是( B )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法11.下面不是分支界限法搜索方式的是( D )。 A、广度优先 B、最小耗费优先 C、最大效益优先 D、深度优先 12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 13. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。 A、重叠子问题 B、最优子结构性质 C、贪心选择性质 D、定义最优解14.广度优先是( A )的一搜索方式。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 15.背包问题的贪心算法所需的计算时间为( B )。

高一期末知识点总结

高一期末知识点总结 第一篇:宇宙与地球 专题1 地球在宇宙中的位置 A 1、天体的概念 2、最基本的天体共同的特征 3、主要天体的特征(恒星、星云、行星、卫星、彗星、流星体) 4、天体系统的层次 5、太阳系的中心天体 6、河外星云的成员 7、宇宙年 8、太阳系八大行星按距离太阳远近的名称 9、八大行星的共同特点 10、距离地球最近的恒星 11、太阳辐射的形式 12、太阳结构(外层、内层) 13、太阳大气的主要特征 14、各层主要的太阳活动的标志 15、太阳活动的主要标志 16、太阳活动的周期 17、太阳对地球的影响

18、八大行星的分类 19、地球成为有生命存有的天体的条件 专题2 地球的伙伴——月球B 20、月球的环境特点 21、月球的地形特点 22、月球公转周期、自转周期、方向 23、地球的天然卫星 24、熟悉月相的名称、各月相的出现的农历时间 25、月相循环一个周期的时间、名称 26、日食、月食出现的原因 27、日食、月食时,月球、地球、太阳的三者位置 28、日食、月食出现时的月相情况 29、潮、汐的概念 30、潮、汐出现的原因(不必展开阐述) 31、理解潮汐随月球而不是太阳的出没而出现潮起潮落的现象的原因 32、连续两次涨潮的时间间隔 33、大潮、小潮出现的月相农历时间 34、潮汐与人类的关系 专题3 人类对太空的探索A 35、太空探索的意义、太空探索的历程 专题4 地球的运动C

36、地球自转的方向、周期、一个周期所需的时间、速度 37、地轴北端的指向 38、恒星日与太阳日的区别(时间、参照物、成因) 39、南、北两极上空所观察到的地球自转的方向 40、什么是地方时、区时、北京时间 41、时区划分的方法 42、国际日期变更线两侧日期的变化 43、地球表面作水平运动的物体发生偏向的的规律(南、北半球、赤道的区别) 44、地球公转的方向、周期、速度 45、黄赤交角的度数 46、太阳直射点在赤道、北回归线、南回归线上的日期、节气 47、正午太阳高度角在纬度和季节上变化的规律 48、晨昏线的区分 49、昼夜长短在纬度和季节上变化的规律极昼、极夜现象 50、天文角度、传统上、气候上四季的划分 第二篇岩石与地貌 专题5 板块运动B 1、用于解释地壳运动的三大学说的名称 2、六大板块的名称 3、板块构造学说的主要观点

四年级语文期末复习知识点总结

工作汇报/工作计划/学习总结 姓名:____________________ 单位:____________________ 日期:____________________ 编号:YB-ZJ-041478 四年级语文期末复习知识点总Summary of the knowledge points of the final review of Chinese in

四年级语文期末复习知识点总结 一、多音字集中营 闷mēn(闷热) 号háo(号叫) 看kàn(看见) 称chèn (称心) mèn(闷雷) hào(号召) kān(看守) chēnɡ(称为) 把bǎ(一把) 干ɡān(干粮) 划huá(划船) 乐yuè(音乐) bà(刀把儿) ɡàn(树干) huà(计划) lè(快乐) 数shǔ(数不) 缝fénɡ(缝补) 似sì(似乎) 佛fó(大佛) shù(数学) fènɡ(缝隙) shì(似的) fú(仿佛) 应yīnɡ(应该) 兴xīnɡ(兴奋) 模mó(模糊) 重chónɡ(重新) yìnɡ(答应) xìnɡ(高兴) mú(模样) zhònɡ(重要) 空kōnɡ(天空) 铺pū(铺床) 朝cháo(朝下) 曲qū(曲折) kònɡ(空地) pù(当铺) zhāo(朝阳) qǔ(歌曲) 片piān(小圆片) 长chánɡ(长度) 和hé(和平) 处chǔ(处理) piàn(片面) zhǎnɡ(长大) hè(响和) chù(好处) 觉jué(觉得) 扇shān(扇动) 角jué(角色) 当dānɡ(当时) jiào(睡觉) shàn(风扇) jiǎo(角度) dànɡ(上当) 恶è(凶恶) 的dí(的确) 卷juǎn(卷起) 几jī(几乎)

算法设计与分析复习要点

·算法是指解决问题的方法和过程。算法是由若干条指令组成的有穷序列。 ·算法特性:输入、输出、确定性、有限性(执行时间和执行次数)(有五个空再加上可行性)。 ·程序是算法用某种程序设计语言的具体实现,程序可不满足有限性的特性。 ·程序调试只能证明程序有错,不能证明程序无错误! ·算法复杂性= 算法所需要的计算机资源。 ·算法的复杂性取决于:(1)求解问题的规模N;(2)具体的输入数据I;(3)算法本身的设计A。·可操作性最好且最有实际价值的是最坏情况下的时间复杂性。 第二章递归与分治策略 二分搜索技术:O(logn)大整数乘法:O(n log3)=O(n1.59)Strassen矩阵乘法:O(n log7)=O(n2.81) 棋盘覆盖:O(4k)合并排序和快排:O(nlogn)线性时间选择:O(n) 最接近点对问题:O(nlogn) 循环赛日程表:O(n2) ·分治法思想:将一个难以解决的问题分割成一些规模较小的相同问题,以便逐个击破,分而治之。边界条件与递归方程是递归函数的两大要素。 递归优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。缺点:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。 ·分治法时间复杂度分析:T(n)<= O(1) n=n0 aT(n/b)+f(n) n>n0 若递归方式为减法:T(n) = O(a n) 若递归方式为除法: f(n)为合并为原问题的开销:f(n)为常数c时:T(n)=O(n p) f(n)为线性函数:O(n) ab,p=log b a f(n)为幂函数n x时:O(n x) af(b),p=log b a ·证明算法的正确性:部分正确性、终止性。 第三章:动态规划 ·当前决策的最优性取决于其后续决策序列的是否最优。动态规划方法可以保证问题求解是全局最优的。

大学数据结构期末知识点重点总结

第一章概论 1.数据结构描述的是按照一定逻辑关系组织起来的待处理数据元素的表示及相关操作,涉及数据的逻辑结构、存储结构和运算 2.数据的逻辑结构是从具体问题抽象出来的数学模型,反映了事物的组成结构及事物之间的逻辑关系 可以用一组数据(结点集合K)以及这些数据之间的一组二元关系(关系集合R)来表示:(K, R) 结点集K是由有限个结点组成的集合,每一个结点代表一个数据或一组有明确结构的数据 关系集R是定义在集合K上的一组关系,其中每个关系r(r∈R)都是K×K上的二元关系 3.数据类型 a.基本数据类型 整数类型(integer)、实数类型(real)、布尔类型(boolean)、字符类型(char)、指针类型(pointer)b.复合数据类型 复合类型是由基本数据类型组合而成的数据类型;复合数据类型本身,又可参与定义结构更为复杂的结点类型 4.数据结构的分类:线性结构(一对一)、树型结构(一对多)、图结构(多对多) 5.四种基本存储映射方法:顺序、链接、索引、散列 6.算法的特性:通用性、有效性、确定性、有穷性 7.算法分析:目的是从解决同一个问题的不同算法中选择比较适合的一种,或者对原始算法进行改造、加工、使其优化 8.渐进算法分析 a.大Ο分析法:上限,表明最坏情况 b.Ω分析法:下限,表明最好情况 c.Θ分析法:当上限和下限相同时,表明平均情况 第二章线性表 1.线性结构的基本特征 a.集合中必存在唯一的一个“第一元素” b.集合中必存在唯一的一个“最后元素” c.除最后元素之外,均有唯一的后继 d.除第一元素之外,均有唯一的前驱 2.线性结构的基本特点:均匀性、有序性 3.顺序表 a.主要特性:元素的类型相同;元素顺序地存储在连续存储空间中,每一个元素唯一的索引值;使用常数作为向量长度 b. 线性表中任意元素的存储位置:Loc(ki) = Loc(k0) + i * L(设每个元素需占用L个存储单元) c. 线性表的优缺点: 优点:逻辑结构与存储结构一致;属于随机存取方式,即查找每个元素所花时间基本一样 缺点:空间难以扩充 d.检索:ASL=【Ο(1)】 e.插入:插入前检查是否满了,插入时插入处后的表需要复制【Ο(n)】 f.删除:删除前检查是否是空的,删除时直接覆盖就行了【Ο(n)】 4.链表 4.1单链表 a.特点:逻辑顺序与物理顺序有可能不一致;属于顺序存取的存储结构,即存取每个数据元素所花费的时间不相等 b.带头结点的怎么判定空表:head和tail指向单链表的头结点 c.链表的插入(q->next=p->next; p->next=q;)【Ο(n)】 d.链表的删除(q=p->next; p->next = q->next; delete q;)【Ο(n)】 e.不足:next仅指向后继,不能有效找到前驱 4.2双链表 a.增加前驱指针,弥补单链表的不足 b.带头结点的怎么判定空表:head和tail指向单链表的头结点 c.插入:(q->next = p->next; q->prev = p; p->next = q; q->next->prev = q;) d.删除:(p->prev->next = p->next; p->next->prev = p->prev; p->prev = p->next = NULL; delete p;) 4.3顺序表和链表的比较 4.3.1主要优点 a.顺序表的主要优点 没用使用指针,不用花费附加开销;线性表元素的读访问非常简洁便利 b.链表的主要优点 无需事先了解线性表的长度;允许线性表的长度有很大变化;能够适应经常插入删除内部元素的情况 4.3.2应用场合的选择 a.不宜使用顺序表的场合 经常插入删除时,不宜使用顺序表;线性表的最大长度也是一个重要因素 b.不宜使用链表的场合 当不经常插入删除时,不应选择链表;当指针的存储开销与整个结点内容所占空间相比其比例较大时,应该慎重选择 第三章栈与队列 1.栈 a.栈是一种限定仅在一端进行插入和删除操作的线性表;其特点后进先出;插入:入栈(压栈);删除:出栈(退栈);插入、删除一端被称为栈顶(浮动),另一端称为栈底(固定);实现分为顺序栈和链式栈两种 b.应用: 1)数制转换 while (N) { N%8入栈; N=N/8;} while (栈非空){ 出栈; 输出;} 2)括号匹配检验 不匹配情况:各类括号数量不同;嵌套关系不正确 算法: 逐一处理表达式中的每个字符ch: ch=非括号:不做任何处理 ch=左括号:入栈 ch=右括号:if (栈空) return false else { 出栈,检查匹配情况, if (不匹配) return false } 如果结束后,栈非空,返回false 3)表达式求值 3.1中缀表达式: 计算规则:先括号内,再括号外;同层按照优先级,即先乘*、除/,后加+、减-;相同优先级依据结合律,左结合律即为先左后右 3.2后缀表达式: <表达式> ::= <项><项> + | <项><项>-|<项> <项> ::= <因子><因子> * |<因子><因子>/|<因子> <因子> ::= <常数> ?<常数> ::= <数字>|<数字><常数> <数字> ∷= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 3.3中缀表达式转换为后缀表达式 InfixExp为中缀表达式,PostfixExp为后缀表 达式 初始化操作数栈OP,运算符栈OPND; OPND.push('#'); 读取InfixExp表达式的一项 操作数:直接输出到PostfixExp中; 操作符: 当‘(’:入OPND; 当‘)’:OPND此时若空,则出错;OPND若 非空,栈中元素依次弹出,输入PostfixExpz 中,直到遇到‘(’为止;若为‘(’,弹出即 可 当‘四则运算符’:循环(当栈非空且栈顶不是 ‘(’&& 当前运算符优先级>栈顶运算符优先 级),反复弹出栈顶运算符并输入到 PostfixExp中,再将当前运算符压入栈 3.4后缀表达式求值 初始化操作数栈OP; while (表达式没有处理完) { item = 读取表达式一项; 操作数:入栈OP; 运算符:退出两个操作数, 计算,并将结果入栈} c.递归使用的场合:定义是递归的;数据结构是 递归的;解决问题的方法是递归的 2.队列 a.若线性表的插入操作在一端进行,删除操作 在另一端进行,则称此线性表为队列 b.循环队列判断队满对空: 队空:front==rear;队满: (rear+1)%n==front 第五章二叉树 1.概念 a. 一个结点的子树的个数称为度数 b.二叉树的高度定义为二叉树中层数最大的叶 结点的层数加1 c.二叉树的深度定义为二叉树中层数最大的叶 结点的层数 d.如果一棵二叉树的任何结点,或者是树叶, 或者恰有两棵非空子树,则此二叉树称作满二 叉树 e.如果一颗二叉树最多只有最下面的两层结点 度数可以小于2;最下面一层的结点都集中在 该层最左边的位置上,则称此二叉树为完全二 叉树 f.当二叉树里出现空的子树时,就增加新的、特 殊的结点——空树叶组成扩充二叉树,扩充二 叉树是满二叉树 外部路径长度E:从扩充的二叉树的根到每个 外部结点(新增的空树叶)的路径长度之和 内部路径长度I:扩充的二叉树中从根到每个内 部结点(原来二叉树结点)的路径长度之和 2.性质 a. 二叉树的第i层(根为第0层,i≥0)最多有 2^i个结点 b. 深度为k的二叉树至多有2k+1-1个结点 c. 任何一颗二叉树,度为0的结点比度为2的 结点多一个。n0 = n2 + 1 d. 满二叉树定理:非空满二叉树树叶数等于其 分支结点数加1 e. 满二叉树定理推论:一个非空二叉树的空子 树(指针)数目等于其结点数加1 f. 有n个结点(n>0)的完全二叉树的高度为 ?log2(n+1)?,深度为?log2(n+1)?? g. 对于具有n个结点的完全二叉树,结点按层 次由左到右编号,则有: 1) 如果i = 0为根结点;如果i>0,其父结点 编号是(i-1)/2 2) 当2i+1∈N,则称k是k'的父结点,k'是 的子结点 若有序对∈N,则称k' k″互为兄弟 若有一条由k到达ks的路径,则称k是 的祖先,ks是k的子孙 2.树/森林与二叉树的相互转换 a.树转换成二叉树 加线: 在树中所有兄弟结点之间加一连线 抹线: 对每个结点,除了其最左孩子外, 与其余孩子之间的连线 旋转: 45° b.二叉树转化成树 加线:若p结点是双亲结点的左孩子,则将 的右孩子,右孩子的右孩子, 所有右孩子,都与p的双亲用线连起来 线 调整:将结点按层次排列,形成树结构 c.森林转换成二叉树 将各棵树分别转换成二叉树 将每棵树的根结点用线相连 为轴心,顺时针旋转,构成二叉树型结构 d.二叉树转换成森林 抹线:将二叉树中根结点与其右孩子连线,及 沿右分支搜索到的所有右孩子间连线全部抹 掉,使之变成孤立的二叉树 还原:将孤立的二叉树还原成树 3.周游 a.先根(次序)周游 若树不空,则先访问根结点,然后依次先根周 游各棵子树 b.后根(次序)周游 若树不空,则先依次后根周游各棵子树,然后 访问根结点 c.按层次周游 若树不空,则自上而下自左至右访问树中每个 结点 4.存储结构 “左子/右兄”二叉链表表示法:结点左指针指 向孩子,右结点指向右兄弟,按树结构存储, 无孩子或无右兄弟则置空 5. “UNION/FIND算法”(等价类) 判断两个结点是否在同一个集合中,查找一个 给定结点的根结点的过程称为FIND 归并两个集合,这个归并过程常常被称为 UNION “UNION/FIND”算法用一棵树代表一个集合, 如果两个结点在同一棵树中,则认为它们在同 一个集合中;树中的每个结点(除根结点以外) 有仅且有一个父结点;结点中仅需保存父指针 信息,树本身可以存储为一个以其结点为元素 的数组 6.树的顺序存储结构 a. 带右链的先根次序表示法 在带右链的先根次序表示中,结点按先根次序 顺序存储在一片连续的存储单元中 每个结点除包括结点本身数据外,还附加两个 表示结构的信息字段,结点的形式为: info是结点的数据;rlink是右指针,指向结点 的下一个兄弟;ltag是一个左标记,当结点没 有子结点(即对应二叉树中结点没有左子结点 时),ltag为1,否则为0 b. 带双标记位的先根次序表示法 规定当结点没有下一个兄弟(即对应的二叉树 中结点没有右子结点时)rtag为1,否则为0 c. 带双标记位的层次次序表示法 结点按层次次序顺序存储在一片连续的存储单 元中 第七章图 1.定义 a.假设图中有n个顶点,e条边: 含有e=n(n-1)/2条边的无向图称作完全图 含有e=n(n-1) 条弧的有向图称作有向完全图 若边或弧的个数e < nlogn,则称作稀疏图, 否则称作稠密图 b. 顶点的度(TD)=出度(OD)+入度(ID) 顶点的出度: 以顶点v为弧尾的弧的数目 顶点的入度: 以顶点v为弧头的弧的数目 c.连通图、连通分量 若图G中任意两个顶点之间都有路径相通,则 称此图为连通图 若无向图为非连通图,则图中各个极大连通子 图称作此图的连通分量 d.强连通图、强连通分量 对于有向图,若任意两个顶点之间都存在一条 有向路径,则称此有向图为强连通图 否则,其各个极大强连通子图称作它的强连通 分量 e.生成树、生成森林 假设一个连通图有n个顶点和e条边,其中n-1 条边和n个顶点构成一个极小连通子图,称该 极小连通子图为此连通图的生成树 对非连通图,则将由各个连通分量构成的生成 树集合称做此非连通图的生成森林 2.存储结构 a.相邻矩阵表示法 表示顶点间相邻关系的矩阵 若G是一个具有n个顶点的图,则G的相邻矩 阵是如下定义的n×n矩阵: A[i,j]=1,若(Vi, Vj)(或)是图G的边 A[i,j]=0,若(Vi, Vj)(或)不是图G的边 b.邻接表表示法 为图中每个顶点建立一个单链表,第i个单链表 中的结点表示依附于顶点Vi的边(有向图中指 以Vi为尾的弧)(建立单链表时按结点顺序建 立) 3.周游 a. 深度优先周游: 从图中某个顶点V0出发,访问此顶点,然后依 次从V0的各个未被访问的邻接点出发,深度优 先搜索遍历图中的其余顶点,直至图中所有与 V0有路径相通的顶点都被访问到为止 b. 广度优先周游: 从图中的某个顶点V0出发,并在访问此顶点之 后依次访问V0的所有未被访问过的邻接点,随 后按这些顶点被访问的先后次序依次访问它们 的邻接点,直至图中所有与V0有路径相通的顶 点都被访问到为止,若此时图中尚有顶点未被 访问,则另选图中一个未曾被访问的顶点作起 始点,重复上述过程,直至图中所有顶点都被 访问到为止 4.拓扑排序 拓扑排序的方法是:1)选择一个入度为0的顶 点且输出之 2)从图中删掉此顶点及所有的出边 3)回到第1步继续执行,直至图空或者图不空 但找不到无前驱(入度为0)的顶点为止 5.单源最短路径(Dijkstra算法) 6.每对顶点间的最短路径(Floyd算法) 7.最小生成树 a.Prim算法 b.Kruskal算法 c.两种算法比较:Prim算法适合稠密图, Kruskal算法适合稀疏图 第八章内排序 算法最大时间平均时间 直接插入排 序 Θ(n2) Θ(n2) 冒泡排序Θ(n2) Θ(n2) 直接选择排 序 Θ(n2) Θ(n2) Shell排序Θ(n3/2) Θ(n3/2) 快速排序Θ(n2) Θ(nlog n) 归并排序Θ(nlog n) Θ(nlog n) 堆排序Θ(nlog n) Θ(nlog n) 桶式排序Θ(n+m) Θ(n+m) 基数排序Θ(d·(n+r)) Θ(d·(n+r)) 最小时间S(n) 稳定性 Θ(n) Θ(1) 稳定 Θ(n) Θ(1) 稳定 Θ(n2) Θ(1) 不稳定 Θ(n3/2) Θ(1) 不稳定 Θ(nlog n) Θ(log n) 不稳定 Θ(nlog n) Θ(n) 稳定 Θ(nlog n) Θ(1) 不稳定 Θ(n+m) Θ(n+m) 稳定 Θ(d·(n+r)) Θ(n+r) 稳定 第十章检索 1.平均检索长度(ASL)是待检索记录集合中元 素规模n的函数,其定义为: ASL= Pi为检索第i个元素的概率;Ci为找到第i个元 素所需的比较次数 2.散列 a.除余法 用关键码key除以M(取散列表长度),并取余 数作为散列地址 散列函数为:hash(key) =key mod M b.解决冲突的方法 开散列方法:把发生冲突的关键码存储在散列 表主表之外(在主表外拉出单链表) 闭散列方法:把发生冲突的关键码存储在表中 另一个位置上 c.线性探查 基本思想:如果记录的基位置存储位置被占用, 就在表中下移,直到找到一个空存储位置;依 次探查下述地址单元:d0+1,d0+2,...,m-1, 0,1,...,d0-1;用于简单线性探查的探查 函数是:p(K, i) = i d.散列表的检索 1.假设给定的值为K,根据所设定的散列函数h, 计算出散列地址h(K) 2. 如果表中该地址对应的空间未被占用,则检 索失败,否则将该地址中的值与K比较 3. 若相等则检索成功;否则,按建表时设定的 处理冲突方法查找探查序列的下一个地址,如 此反复下去,直到某个地址空间未被占用(可 以插入),或者关键码比较相等(有重复记录, 不需插入)为止 e.散列表的删除:删除后在删除地点应加上墓 碑(被删除标记) f.散列表的插入:遇到墓碑不停止,知道找到真 正的空位置 第十一章索引技术 1.概念: a.主码:数据库中的每条记录的唯一标识 b.辅码:数据库中可以出现重复值的码 2.B树 a.定义:B树定义:一个m阶B树满足下列条 件: (1) 每个结点至多有m个子结点; (2) 除根和叶外 其它每个结点至少有??个子结点; (3) 根结点至少有两个子结点 例外(空树,or独根) (4) 所有的叶在同一层,可以有??- 1到m-1个 关键码 (5) 有k个子结点的非根结点恰好包含k-1个关 键码 b.查找 在根结点所包含的关键码K1,…,Kj中查找给 定的关键码值(用顺序检索(key少)/二分检索 (key多));找到:则检索成功;否则,确定要查 的关键码值是在某个Ki和Ki+1之间,于是取 pi所指结点继续查找;如果pi指向外部结点, 表示检索失败. c.插入 找到的叶是插入位置,若插入后该叶中关键码 个数

相关主题
文本预览
相关文档 最新文档