- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法与数据结构课件-第7章查找资料
第7章 查找 7.1 基本概念与术语 7.2 静态查找表 7.3 动态查找表 7.4 哈希表 7.5 典型例题 7.1 基本概念与术语—以图书信息表为例 7.1 基本概念与术语 查找表 用于查找的数据集合。 具有同一类型的数据元素(或记录)组成的集合。 对查找表进行的操作 查询某个“特定的”数据元素是否在查找表中; 检索某个“特定的”数据元素的各种属性; 在查找表中插入一个数据元素; 从查找表中删去某个数据元素; 根据操作的不同,查找表可分为: 静态查找表:仅对查找表进行前两种操作,不能被改变; 动态查找表:除进行“查找”操作外,可能还要向表中插入数据元素或删除数据元素,可以被改变。 基本概念 查找:根据给定的某个值,在查找表中确定一个其关键码等于给定值的数据元素(或记录)。 查找成功: 查找表中存在满足条件的数据元素; 查找结果为:整个记录的信息,或指示该记录在查找表中的位置; 查找不成功: 查找表中不存在满足条件的数据元素; 查找结果为:“空记录”或者“空指针”。 平均查找长度 平均查找长度(Average Search Length): 与给定值进行比较的关键码个数的期望值 衡量查找算法性能的主要依据 对于长度为n的查找表,查找成功时的平均查找长度为 : 查找表中的元素是无序的,元素间不存在逻辑关系。为了查找的方便,需在数据元素间人为地加上一些关系,即以另一种数据结构来表示查找表。 组织查找表的方法 静态查找表(线性表、索引结构) 动态查找表(树表) 哈希表(散列表) 7.2.1 静态查找表结构 以顺序表作为存储结构 #define MaxSize 100 //表中最多记录个数 typedef struct { KeyType key; ∥关键码字段 … … ∥其他字段 }ElemType; typedef struct { ElemType data[MaxSize+1]; int length; } SqList; 顺序查找中使用监测哨 顺序查找总结 查找关键码为18的数据元素 int Binary_Search(SqList L,KeyType kx) { /*在表L中查找关键码为kx的数据元素,若找到返回该元素在表中的位置,否则,返回0 */ int mid,low,high; low=1;high=L.length; /* ①设置初始区间 */ while(low=high) /* ②表空测试 */ { /* 非空,进行比较测试 */ mid=(low+high)/2; /* ③得到中点 */ if (kx==L.data[mid].key) return (mid); /*查找成功*/ if (kxL.data [mid].key) high=mid-1 ; /* 调整到左半区 */ else low=mid+1; /*调整到右半区 */ } return 0; } 折半查找的递归算法 带外部结点的判定树 举 例 折半查找总结 优点: 效率比顺序查找高 比较次数少,查找速度快,平均性能好 缺点: 要求查找表有序 仅限于顺序存储结构 7.2.4 分块查找 又称索引顺序查找,是对顺序查找的改进。 将顺序表分成若干个子表B1、B2、…、Bn,并要求当ij时,Bi中记录的关键码都小于Bj中记录的关键码。记录的这种排列方式称为分块有序。 分块之后,另建一个线性表,称为索引表。每个子表在索引表中有一项,称为索引项。 索引项中包括两个域,一个域存放子表中的最大关键码,另一个域存放子表的第一个记录在线性表中的位置。 分块查找示例 分块查找性能分析 平均查找长度 静态查找表总结 顺序查找适用于任何线性表,但效率较低; 分块查找不需要对全部的数据元素排序,它的插入删除在块内进行,由于不要求有序,操作比较容易,其主要代价是增加一个辅助数组的存储空间和将初始顺序表分块排序的操作; 折半查找效率最高,但要求查找表有序且顺序存储,故插入删除时必须移动元素,这种由移动元素引起的额外时间开销,就会抵消折半查找的优点。也就是说,折半查找只适用于静态查找表。 若要对动态查找表进行高效率的查找,可采用下面介绍的几种特殊的二叉树或树作为表的组织形式 。 7.3 动态查找表 二叉排序树: 或者是一棵空树,或者是具有下列性质的二叉树: 若左子树不空,则左子树上所有结点的
您可能关注的文档
- 等离子点火系统.ppt
- 等腰三角形期中复习课.ppt
- 机械设计2016.docx
- 等直线全新1.ppt
- 机械设计-第04章-周兴义.pptx
- 等腰三角形(性质1)yfs90.ppt
- 等高耕作措施、覆盖耕作措施、免耕措施.ppt
- 机械设计8—滑动轴承.ppt
- 等离子弧焊接-7-1.ppt
- 策划在广告活动中的地位.ppt
- GB/T 45498.2-2025中华人民共和国社会保障卡一卡通规范 第2部分:应用规范.pdf
- GB/T 37507-2025项目、项目群和项目组合管理项目管理指南.pdf
- 《GB/T 45498.3-2025中华人民共和国社会保障卡一卡通规范 第3部分:安全规范》.pdf
- 中国国家标准 GB/T 37507-2025项目、项目群和项目组合管理项目管理指南.pdf
- 中国国家标准 GB/T 20236-2025非金属材料的聚光加速户外暴露试验方法.pdf
- 《GB/T 20236-2025非金属材料的聚光加速户外暴露试验方法》.pdf
- 《GB/T 9065.2-2025液压传动连接 软管接头 第2部分:24°锥形》.pdf
- 中国国家标准 GB/T 33523.600-2025产品几何技术规范(GPS) 表面结构:区域法 第600部分:区域形貌测量方法的计量特性.pdf
- 《GB/T 33523.600-2025产品几何技术规范(GPS) 表面结构:区域法 第600部分:区域形貌测量方法的计量特性》.pdf
- GB/T 33523.600-2025产品几何技术规范(GPS) 表面结构:区域法 第600部分:区域形貌测量方法的计量特性.pdf
最近下载
- 大数据环境下电商用户行为分析与预测论文.docx VIP
- 《光纤温度传感器》.ppt
- 免疫性血小板减少症护理.pptx VIP
- Python编程基础与应用--课件0103使用PIP管理Python库.pptx VIP
- (2025春新教材)外研版三年级英语下册Unit 3 Yummy food 教学设计.docx VIP
- WH∕T 65-2014 电子图书元数据规范.pdf
- 汕头职业技术学院消防维保服务项目需求书.docx
- J B∕T 8856-2018 -溶解乙炔设备.pdf
- 毕业论文(设计)济宁三号煤矿7.0Mt-a新井设计.docx VIP
- 2024年高二上学期期中英语测试卷+听力(原卷+解析).docx
文档评论(0)