- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 查找.ppt
第7章 查找 7.1 基本概念 7.2 静态查找表 7.3 动态查找表 7.4 哈希表 7.1 基本概念与术语 7.1 基本概念与术语 讨 论: 讨论4:如何评估查找方法的优劣? 7.2 静态查找表 一些约定: 典型的关键字类型说明: typedef float KeyType; //实型 typedef int KeyType; //整型 typedef char *KeyType; //字符串型 数据元素类型定义为: typedef struct{ KeyType key; // 关键码域 ... //其它域 }ElemType; 一、顺序查找( Linear search,又称线性查找 ) 一、顺序查找( Linear search,又称线性查找 ) 讨论1:查找失败怎么办? 二、折半查找(又称二分查找或对分查找) 折半查找举例: 1.设表长为n,low、high和mid分别指向待查元素所在区间的下界、上界和中点, key为给定值。2.初始时,令low=1,high=n,mid=?(low+high)/2?让key与mid指向的记录比较 若key== ST.data[mid].key,则查找成功 若key ST.data[mid].key,则high=mid-1 若key ST.data[mid].key,则low=mid+13.重复上述操作,直至lowhigh时,查找失败。 折半查找算法思想: 折半查找算法 用查找二叉树/判定树来分析ASL(参见教材P147) 三、分块查找(索引顺序查找) 分块查找过程举例: 7.3 动态查找表 一、二叉排序树的定义 二叉排序树的插入算法 二叉排序树的构造算法 三、二叉排序树的删除操作 难点:*p有两棵子树时,如何进行删除操作? 例:请从下面的二叉排序树中删除结点P。 小结——二叉排序树的优点: 回顾:二叉排序树的查找分析 m路查找树(m叉排序树) 一棵m路查找树,或者是一棵空树,或者是满足以下性质的树: 1、结点最多有m棵子树,m-1个关键码; 2、KiKi+1, 1≤ i ≥n-1; 3、子树Pi中的所有关键码均大于Ki,小于Ki-1; 4、子树Pi也是m路查找树。 B_树 7.4 哈希查找表 可以 ! 方法:在记录存储位置和其关键码之间建立一个确定的对应关系f(函数),在查找时,根据对应关系f计算出给定关键码K的存储地址f(K)。我们称这个对应关系f为哈希(Hash)函数,按这个思想建立的表称为哈希表。 例1:11个元素的关键码分别为18、27、1、20、22、6、10、13、41、15、25.选取关键码与数据元素存储位置间的函数为f(key)=key mod 11. 1) 通过函数对11个元素建立哈希查找表: 例2:若将学生信息按如下方式存入一维数组A[1..30],如: 将200408101的所有信息存入A[1] ; 将200408102的所有信息存入A[2] ; …… 将200408130的所有信息存入A[30] 。 要查找学号为200408116的信息,可直接访问A[16]。 若把数组A[1..30]看作哈希表,则哈希函数f(key)=key。 思考:如果以学生姓名为关键字,如何建立查找表,使得根据姓名可以直接找到相应记录呢? 用上述得到的数值作为对应记录在表中的位置,得到下表: 一、哈希表的概念 例 题 在哈希查找方法中,冲突是不可能避免的,只能尽可能减少。 二、哈希函数的构造方法 1、直接定址法 2、除留余数法 3、数字分析法 4、平方取中法 三、冲突处理方法 1、开放定址法(开地址法) 例: 例: 一组关键字(19, 14, 23, 1, 68, 20, 84, 27, 55, 11, 10, 79), 按哈希函数H(key)=key MOD 13和线性探测处理冲突构造哈希表a.elem[0..15],并计算平均查找长度ASL。 表长m=16 讨论: 2. 二次探测法 3、双哈希函数探测法 2、链地址法(拉链法) 例:已知一组关键字为(19,14,23,01,68,20,84,27,55,11,10,79),则按哈希函数H(key)=key MOD 13和链地址法处理冲突构造所得的哈希表如图所示。 四、哈希表的查找及分析 讨论: 设计思路:有冲突时,代表该地址已经存放了数据元素,就去寻找下一个空的哈希
您可能关注的文档
最近下载
- 成本会计学第9版张敏.pdf VIP
- 公路养护日常小修保养施工组织设计 附公路隧道施工技术规范.doc VIP
- 国家开放大学电大《组织行为学》机考终结性2套题库及答案.doc VIP
- 2024秋国开一网一 微积分大作业word版答案.docx VIP
- 湛江市麻章区数学小升初数学试卷.doc VIP
- 《好利来食品盈利能力研究》文献综述3000字.docx VIP
- 学校安保服务投标方案(技术方案).doc
- 广东省湛江市麻章区2023年小升初数学试卷(含答案).pdf VIP
- 四川大学《微机原理与接口技术》2022-2023学年第一学期期末试卷.pdf VIP
- 海浦蒙特COOL100炫系列别墅电梯控制柜用户手册-中-V1.2.pdf VIP
文档评论(0)