- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据结构复习3
数据结构复习(3) 中国科学院研究生院 wangwj@gscas.net.cn 第三部分 第九章:查找 第十章:内部排序 第九章 查找 基本概念 静态查找表 顺序表的查找 有序表的查找 索引顺序表的查找 动态查找表 二叉排序树 平衡二叉树 B-树和B+树 哈希表(HASH) 基本概念(1) 查找表:同类数据元素构成的集合。 包含: 静态查找表:在表中查询某个元素或其属性。 动态查找表:在表中查询某个元素或其属性, 在表中插入、删除某个元素 主关键字,次关键字 数据元素可能由多个数据项组成,其中能够唯一识别该元素的数据项称主关键字;能识别若干元素的称次关键字。 基本概念(2) 查找:根据给定的值,在查找表中找到某个关键字的值等于给定的值的数据元素。 查找成功:表中存在所要查找的元素。 查找不成功:表中不存在所要查找的元素。 平均查找长度:在查找成功时,平均查找长度ASL是指为确定数据元素在表中的位置所进行的关键码比较次数的期望值。 Pi为表中第i个数据元素的查找概率 Ci为表中第i个数据元素的关键码与给定值相等时,按算法定位时关键码的比较次数。 顺序表查找(1) 查找过程:从表中最后一个元素开始,逐个比较,相等则比较成功,否则直到查找完所有的元素。 优点:对线性表的结点的逻辑次序无要求(不必按关键码值排序),对线性表存储结构无要求(顺序和链式都可以) 缺点:平均检索长度长,与表中结点个数成正比。 顺序表查找(2) 平均查找长度:就上述算法而言,对于n个数据元素的表 ,Ci=n-i+1 设每个数据元素的查找概率相等 查找成功:pi = 1/n ci= 1,2,3…n ASL=1/n[1+2+…+n] = (n+1)/2 查找不成功:ASL = n+1 , (n, n-1…1, 0) 有序表的查找(1) 有序表即是表中数据元素按关键码升序或降序排列。 折半查找的思想为:在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键码相等,则查找成功;若给定值小于中间元素的关键码,则在中间元素的左半区继续查找;若给定值大于中间元素的关键码,则在中间元素的右半区继续查找。不断重复上述查找过程,直到查找成功,或所查找的区域无数据元素,查找失败。 有序表的查找(2) 性能分析 : 从折半查找过程看,以表的中点为比较对象,并以中点将表分割为两个子表,对定位到的子表继续这种操作。所以,对表中每个数据元素的查找过程,可用二叉树来描述,称这个描述查找过程的二叉树为判定树。 查找表中任一元素的过程,即是判定树中从根到该元素结点路径上各结点关键码的比较次数,也即该元素结点在树中的层次数。对于n个结点的判定树,树高为k,则有2k-1-1n≤2k-1,即k-1log2(n+1)≤k, 所以k= ?log2n?+1。因此,折半查找在查找成功时,所进行的关键码比较次数至多为k= ?log2n?+1 。 有序表的查找(3) 平均查找长度(以树高为k的满二叉树(n=2k-1)为例 ): 假设表中每个元素的查找是等概率的,即 Pi=1/n ,则树的第i层有2i-1个结点,因此,折半查找的平均查找长度为: ? ASL= [1×20+2×21+…+k×2k-1] = log2(n+1)-1≈log2(n+1)-1 ? 所以,折半查找的时间效率为O(log2n)。 有序表的查找(4) 优点:平均检索长度小,粗略地说:每经过一次关键字比较,则将查找范围缩小一半 缺点:排序花费时间 索引顺序表查找(1) (表+索引表)也称为分块查找 分块查找要求将查找表分成若干个子表,并对子表建立索引表,查找表的每一个子表由索引表中的索引项确定。索引项包括两个字段: 关键码字段:存放对应子表中的最大关键码值 指针字段:存放指向对应子表的指针 , 并且要求索引项按关键码字段有序 索引顺序表查找(2) 查找时,先用给定值kx在索引表中检测索引项,以确定所要进行的查找在查找表中的查找分块 (由于索引项按关键码字段有序,可用顺序查找或折半查找) ,然后,再对该分块进行顺序查找。 动态查找表 二叉排序树 平衡二叉树 B-树和B+树 二叉排序树(1) 二叉排序树定义 二叉排序树(Binary Sort Tree)或者是一棵空树;或者是具有下列性质的二叉树: ⑴ 若左子树不空,则左子树上所有结点的值均小于根结点的值;若右子树不空,则 右子树上所有结点的值均大于根结点的值。 ⑵ 左右子树也都是二叉排序树。 二叉排序树实际上是将线性表中的结
您可能关注的文档
- [工学]数字电子技术 第三章 逻辑门电路.ppt
- [工学]数字电子技术习题答案.pdf
- [工学]数字电子技术基础 第五章.ppt
- [工学]数字电子技术基础课件第2章 逻辑代数基础.ppt
- [工学]数字电子技术检测题及答案.doc
- [工学]数字电子技术第1章.ppt
- [工学]数字电子技术2.ppt
- [工学]数字电路 第6章-6.ppt
- [工学]数字电子技术第7章 半导体存储器.ppt
- [工学]数字电路与系统设计第六章-4.ppt
- 建银国际证券-港股熊牛切换走向深化:新质生产力助力打开港股长期上升空间.pdf
- 国金证券-创业板50择时跟踪:2月进一步提升创业板50看涨比例.pdf
- 信用|关注存单和城投下沉的机会.pdf
- 政策半月观:三大方向进一步受重视.pdf
- 固定收益专题报告:建筑行业信用风险及投资价值全梳理.pdf
- AI行业跟踪报告第58期:华勤技术,AI云、端全线卡位,全面受益于AI落地.pdf
- 高频选股因子:大单因子表现继续反弹,AI增强组合持续回撤.pdf
- 投资策略研究*专题报告:科技引领“中国资产”价值重估进度加快.pdf
- 电子行业:高阶智驾加速普及,催动硬件快速放量.pdf
- 浙商证券-北汽蓝谷-600733-北汽蓝谷深度报告:联袂小马打造无人出租,携手华为进军全民智驾.pdf
文档评论(0)