- 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文档。上传文档
查看更多
数据结构 第八章 查找 第八章 查找 知 识 点 查找的基本概念 三种基本查找方法:顺序查找、二分查找和分块查找 树型查找的基本概念和查找算法 散列法、散列函数冲突的基本概念和解决冲突方法 难 点 二叉排序树查找 平衡树及平衡树的调整 要 求 熟练掌握以下内容: 三种基本查找方法的基本思想和算法 二叉排序树查找的基本思想和算法 散列法基本思想、散列函数的常用构造方法及解决冲突方法 了解以下内容: 平衡树及平衡树的调整 B-树查找 第八章目录 9.1 查找的基本概念 9.2 基本查找方法 9.3 树型查找 9.4 散列法 9.5 应用举例及分析 小 结 习题与练习 9.1 查找的基本概念 查找又称为查询或检索,是在一批记录中依照某个域的指定域值,找出相应的记录的操作。 在计算机中,被查找的数据对象是由同一类型的记录构成的集合,可称之为查找表(search table)。 在实际应用问题中,每个记录一般包含有多个数据域,查找是根据其中某一个指定的域进行的,这个作为查找依据的域称为关键字(key)。 对于给定的关键字的值,如果在表中经过查找能找到相应的记录,则称查找成功,一般可输出该记录的有关信息或指示该记录在查找表中的位置。若表中不存在相应的记录,则称查找不成功,此时应该给出不成功的信息。 查找算法中的基本运算是记录的关键字与给定值所进行的比较,其执行时间通常取决于比较的次数。因此,通常以关键字与给定值进行比较的记录个数的平均值,作为衡量查找算法好坏的依据。 9.2.1 顺序查找 顺序查找(Sequential search)也称为线性查找,是采用线性表作为数据的存储结构,对数据在表中存放的先后次序没有任何要求。 顺序查找是最简单的查找方法,它的基本思想是:查找从线性表的一端开始,顺序将各单元的关键字与给定值k进行比较,直至找到与k相等的关键字,则查找成功,返回该单元的位置序号;如果进行到表的另一端,仍未找到与k相等的关键字,则查找不成功,返回0作为查找失败的信息。 顺序查找的线性表定义如下: #define MAXITEM 100 /*最多项数*/ struct element { keytype key; Elemtype data; }; typedef struct sqlist[MAXITEM]; 这里keytype和ElemType可以是任何相应的数据类型,如int、float或char等,在算法中我们规定它们缺省是int类型。 顺序查找算法 int sequsearch (sqlist r, int k, n) { /*n为线性表r中元素个数*/ i=1 while (r[i].key!=k i=n) i++; if(in) i=0; return(i); } 顺序查找算法分析 此函数的主要运算时间是用于循环语句逐单元进行比较判断r[i].key是否等于k,因此顺序查找的速度较慢,最坏的情况查找成功需比较n次,最好的情况是比较1次,如果对每个关键字进行查找的概率相等,则查找成功所需的平均比较次数为(n+1)/2,而查找失败则需比较(n+1)次,时间复杂度为O(n)。 顺序查找的优点是算法简单、适应面广,且不要求表中数据有序。缺点是平均查找长度较大,特别是当n较大时,查找效率较低,不宜采用。 9.2.2 二分查找 二分查找(Birary search)也称为折半查找,它的查找速度比顺序查找快,但它要求数据在线性表中按查找的关键字域有序排列。 设n个数据存放于数组r中,且已经过排序,按由小到大递增的顺序排列。 采用二分查找,首先用要查找的给定值k与表正中间元素的关键值相比较,此元素的下标 。 比较结果有三种可能: ⑴ 如果r[m].keyk,说明如果存在欲查找的元素,该元素一定在数组的前半部分,查找范围缩小了一半,修改查找范围的的上界high=m-1,继续对数组的前半部分进行二分查找; ⑵ 如果r[m].keyk,说明如果存在欲查找的元素,该元素一定在数组的后半部分,查找范围缩小了一半,修改查找范围的的下界low=m+1,继续对数组的后半部分进行二分查找; ⑶ 如果r[m].key=k,查找成功,m所指的记录就是查找到的数据。 重复上述过程,查找范围每次缩小1/2,当范围不断缩小,出现查找范围的下界大于上界时,则查找失败,确定关键字为key的记录不存在。 二分查找是一种效率较高的算法,最好的情况是第一次比较即找到所查元素,即使一次比较没有找到,也把进一步查找的范围了缩小一半。与此类似,每比较一次均使查找范
您可能关注的文档
- 抽屉原理(一)课件.ppt
- 担起对下级的领导责任.ppt
- 招商总结-王永福.ppt
- 拥有好心情第一课时课件湘教版.ppt
- 指纹锁安装培训新版.ppt
- 探讨中小学数学教育教学的本质特征.ppt
- 掌控情绪促进健康正稿.ppt
- 描述与叙述文体的翻译.ppt
- 推断文言实词词义复习.ppt
- 提高团队执行力德信诚教材.ppt
- 吉林省白城市实验高级中学2024-2025学年度高三上学期期中考试语文试卷(含答案).pdf
- 黑龙江省牡丹江市2024-2025学年部编版八年级上学期期中考试历史试卷.pdf
- 江西省部分学校2024-2025学年高一上学期11月期中生物试题(含解析).pdf
- 山东省菏泽市单县2024-2025学年八年级上学期期中历史试题.pdf
- 山东省聊城市东阿县实验中学2024-2025学年八年级上学期10月月考地理试题(含答案).pdf
- 山东省滨州市惠民县2024-2025学年八年级上学期期中考试道德与法治试题.pdf
- 湖南省怀化市麻阳苗族自治县代远学校2024-2025学年七年级上学期期中道德与法治试卷(不含答案).pdf
- 江苏省常州市溧阳市2024-2025学年五年级上学期11月期中英语试题(含答案,无听力原文,无音频).pdf
- 吉林省通化市梅河口市第五中学2024-2025学年高三上学期11月期中地理试题(含答案).pdf
- 天津市部分区2024--2025学年部编版九年级上学期期中历史测试题(含答案).pdf
最近下载
- 肾盂旁囊肿的研究的现状及进展.doc VIP
- 3.1《中国科学技术史序言(节选)》课件-中职高二语文(高教版2024拓展模块上册).pptx
- PCB多层压合工艺PPT课件.ppt
- 第一单元第二节+体验“云上生活”++课件 2024—2025学年川教版(2024)信息科技+七年级上册.pptx VIP
- Garmin佳明Forerunner 165 智能GPS跑步腕表说明书用户手册.pdf
- 工程项目工期关键节点和线路保证措施(模板)18.docx VIP
- 泰康入职测评考试题库答案.pdf
- Ai围棋定式大全(重排彩图).pdf
- 汽车钣喷系列教学课件--钣金件焊接工艺.ppt
- 人力资源有限公司管理制度.docx VIP
文档评论(0)