- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
查找 数据结构 8 查找 主要内容 查找的概念 静态查找表 线性查找 折半查找 动态查找表 二叉查找树、平衡二叉树、B-、B+树 哈希查找 查找的概念 静态查找表 数据集合“只读”,即只能对该数据集合进行查询操作 动态查找表 数据集合“可写”,即可以对集合元素做插入、删除等操作 注: 查找算法和数据存储的结构有关 查找的概念 关键字 数据元素中某个数据项或组合项的值 可以标识一个数据元素 关键字可以相同,即不一定唯一标识这个元素 主关键字 可以唯一标识一个记录的关键字 次关键字 识别若干记录的关键字 查找的概念 平均查找长度(Average Search Length) 查找就是不断将数据元素的关键字与待查找关键字进行比较,查找算法在查找成功时平均比较的次数称作平均查找长度 Pi:查找第i个数据元素的概率 Ci:查找该元素的过程中比较的次数 折半查找的性能 平均查找长度 第h层的元素有2h-1个,找到它需要比较h次 等概率条件下 ASL 折半查找 总结 顺序查找和折半查找都针对静态查找表 折半查找效率较高 但是 折半查找要求数据有序 且存储结构必须是顺序存储(链表怎么折半?) 二叉排序树的基本概念 二叉排序树(又称二叉查找树) 或为空树,或为如下性质的二叉树: 若左子树与右子树不空,则 左子树上所有结点的值根结点的值=右子树上所有结点的值 将线性表构造成二叉排序树的优点: 二叉排序树上结点的删除 二叉排序树上结点的删除 if (q != p) q-rchild = s-lchild; else q-lchild = s-lchild; free(s); 二叉查找 查找算法的效率 查找的次数 = 树的高度 因此复杂度=O(h),问题是h=? 最好情况: 与折半查找中的判定树相同(即形态比较均衡) 平衡二叉树 平衡二叉树(AVL树) Adelson-Velskii 和 Landis 发明 或者是空树 或者: 左右子树都是AVL树 且左右子树的深度之差不超过1 平衡二叉树 分情况讨论 以A为子树根的子树就这4种情况: (1)LL型 平衡二叉树 (2)RR型 平衡二叉树 (3)LR型 平衡二叉树 (4)RL型 非平衡二叉树的调整 各个击破 (1)LL型 非平衡二叉树的调整 (2)RR型 非平衡二叉树的调整 (3)LR型 非平衡二叉树的调整 (4)RL型 平衡二叉树的查找及性能分析 平衡二叉树本身就是一棵二叉排序树,故它的查找与二叉排序树完全相同。在查找过程中和关键字进行比较的次数不超过树的深度。 但它的查找性能优于二叉排序树,不像二叉排序树一样,会出现最坏的时间复杂度O(n),它的时间复杂度与二叉排序树的最好时间复杂相同,都为O(log2n)。 已知长度为11的表(xal,wan,wil,zol,yo,xul,yum,wen,wim,zi,yon) 按表中元素顺序依次插入一棵初始为空的: (1) 二叉排序树 (2) 平衡二叉排序树 (3) 最佳二叉排序树 分别求其在等概率的情况下查找成功的平均查找长度。 设二叉排序树中关键字由1到1000的整数组成,现要查找关键字为363的结点,下述关键字序列哪一个不可能是在二叉排序树中查到的序列?说明原因。 (1)51,250,501,390,320,340,382,363 (2)24,877,125,342,501,623,421,363 B-树查找长度分析 第一层至少有1个结点; 第二层至少有2个结点; 第三层至少有2* ?m/2?个结点,…,依次类推; 第L+1层至少有2*(?m/2?)L-1个结点; 而L+1层的结点为叶子结点,数量为N+1; N+1=2*(?m/2?)L-1 ; 即L=log ?m/2?((N+1)/2)+1 。 B-树查找分析 在含有N个关键字的B-树上进行查找时,从根结点到关键字所在结点的路径上涉及的结点数不超过 (1)B+树的查找: 通常设两个头指针:一个指向B+树的根结点;一个指向关键码最小的叶结点,所有叶结点链成线性链表。 对B+树可以进行两种查找运算:一种是从最小关键字起顺序查找;另一种是从根结点开始,进行随机查找。这种查找方法与B-树的查找方式相似,但若在分支结点上的关键字与查找的关键字相等时,查找并不结束,要继续找到叶结点为止。 哈希查找 前面讨论的各种结构(线性表、树等)中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系。 因此,在结构中查找记录时需进行一系列和关键字的比较。即这一类查找方法建立在“比较”的基础上。 如:顺序查找:比较的结果为“=”与“≠”两种可能。 折半查找、二叉排序树查找、B树查找:比较的结果为“”“=”和“”三种可能。 (1)直接定址法 (3)
您可能关注的文档
最近下载
- 城市轨道交通运营公司“青年突击队”组建及实施方案.docx
- 沪发改投(2012)130号文.docx VIP
- 梵高——.ppt VIP
- 2025年山东黄金集团井下技能工人招聘(2025人)笔试历年参考题库附带答案详解(10卷合集).docx
- 液压装配知识培训课件.pptx
- 安全文明施工的安全防护设施.pptx VIP
- 人教版高中英语选择性必修第一册UNIT1单元测试含答案 .pdf VIP
- 湖南湘西卫生系统招聘考试(护理学专业知识)题含答案2024年.docx VIP
- 建筑工程图集 07SJ504-1:隔断隔断墙(一).pdf VIP
- GB1094.7-2016 电力变压器 第7部分:油浸式电力变压器负载导则.docx VIP
文档评论(0)