- 1、本文档共130页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 查 找
查 找本章导读在实际应用中,查找操作非常常见,尤其是对于一些数据量很大的实时系统,如订票系统、信息检索系统等,高效的查找算法对于提高查找效率尤为重要。本章主要介绍三类常用的查找算法:一是静态查找算法,如顺序查找、折半查找和分块查找;二是动态查找算法,如二叉排序树、平衡二叉树和B树;三是哈希查找算法。 第8章
查 找知识目标 第8章 熟悉查找的基本术语。 掌握顺序查找、折半查找和分块查找的基本算法和查找性能。 掌握二叉排序树、平衡二叉树和B树的基本概念和查找过程。 了解哈希表的概念,掌握哈希函数的构造方法和处理冲突的方法。 掌握哈希查找算法和哈希性能。
查 找技能目标 第8章 能灵活运用静态查找算法、动态查找算法和哈希查找算法解决实际应用中的查找问题。
查 找素质目标 第8章 自觉培养发散思维,积极开拓思路,寻求问题的多种解决方法。 弘扬科学严谨、精益求精、追求卓越的工匠精神。
Content第8章静态查找算法查找概述动态查找算法哈希表的查找
8.1 查找概述第8章 查 找
8.1 查找概述1.查找表查找表是按某种数据形式(可以是前面章节中的任何一种数据结构,如线性表、二叉树或图等)存储的同一类型数据元素的集合,每个数据元素通常由若干数据项组成。查找表可分为静态查找表和动态查找表。如果在进行查找操作时,不能改变查找表中的原始数据,则相应的查找表称为静态查找表;如果在进行查找操作时,还可以对查找表进行修改操作(如向查找表中插入新的数据元素或从查找表中删除已有的数据元素),则相应的查找表称为动态查找表。
8.1 查找概述2.关键字关键字是数据元素中某个数据项的值,用它可以标识一个数据元素。其中,能唯一标识一个数据元素的关键字称为主关键字,也就是说,对于不同的数据元素,其主关键字各不相同。反之,不能唯一标识一个数据元素的关键字称为次关键字。数据元素类型定义如下。class RNode: def __init__(self, key, data): self.key = key # 关键字 self.data = data # 其他数据项
8.1 查找概述3.查找查找是指根据给定的值,在查找表中找出关键字与给定值相等的数据元素。若找到相应的数据元素,则查找成功,查找结果可以是数据元素的信息,也可以是数据元素在查找表中的位置;否则查找失败,查找结果为None。当关键字是主关键字且查找成功时,查找结果是唯一的;当关键字是次关键字时,需要查找整个查找表,查找成功后返回所有查找结果。
8.1 查找概述4.平均查找长度(ASL)?
8.2 静态查找算法第8章 查 找
8.2 静态查找算法顺序查找是最简单、最常用的查找算法,其基本思想是从顺序表的一端开始,将数据元素的关键字逐个与给定值进行比较。若某个数据元素的关键字与给定值相等,则查找成功,返回该数据元素在查找表中的位置;否则,查找失败,返回-1。8.2.1 顺序查找def seqSearch(self, key): n = self.len # 查找表的长度 i = 0 while i n and self.list[i].key != key:# 从表头开始向后顺序查找【算法描述】
8.2 静态查找算法i += 1 if i = n: # 查找失败 return -1 else: # 查找成功 return i 此外,还可以设置一个“哨兵”,即将顺序表的list[n]的关键字设置为key。这样,i从0开始依次比较,当满足list[i]=key时,若i=n,说明查找失败,返回-1;否则,查找成功,返回数据元素在查找表中的位置。
8.2 静态查找算法def seqSearchIMP(self, key): n = self.len self.list.append(key) # 在顺序表的末尾添加“哨兵” i = 0 while self.list[i].key != key: # 从表头开始向后顺序查找 i += 1 if i == n: # 查找失败 return -1 else: # 查找成功 return i【算法描述】
在第一种算法seqSearch()中,查找时需要反复判断是否已经查找完顺序表中的所有数据元素。而在第二种算法seqSearchIMP()中,查找时从顺序表的第一个数据元素开始自前向后依次进行关键字的比较,若未找到与给定值相等的关键字,则当list[n]的关
您可能关注的文档
最近下载
- 【国家标准】GB∕T 35450-2017 聚碳酸酯薄膜及片材.pdf
- 医疗废物管理制度 (1).doc VIP
- 青19J2青19J3建筑专业(三):建筑用料及做法+屋面.docx
- 项目安全资料标准化实施手册 (1).pdf VIP
- 2022年成都市武侯国有资本投资运营集团有限责任公司招聘考试题库及答案解析.docx VIP
- 机械设计软件:Creo二次开发_(2).CreoAPI基础.docx VIP
- 第三十八回 及时雨会神行太保 黑旋风斗浪里白条-名著《水浒传》阅读导航+情节概括+思维导图+原文批注+阅读训练初中语文.docx VIP
- 物理性污染与防治.ppt VIP
- 1+X快递运营理论测试题.docx VIP
- 9.29事故抢险救援战评总结.ppt VIP
文档评论(0)