- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构答案查找学习与指导
第9章 查找
9.1 知识点分析
1. 基本概念
(1)查找表由同一类型的数据元素(或记录)构成的集合称为查找表。
(2)静态查找在查找过程中仅查找某个特定元素是否存在或它的属性的,称为静态查找。
(3)动态查找在查找过程中对查找表进行插入元素或删除元素操作的,称为动态查找。
(4)关键字关键字数据元素(或记录)中某个数据项的值,用它可以标识数据元素(或记录)。关键字分主关键字(唯一地标识一个记录的关键字)和次关键字(标识若干个记录的关键字)。
(5)查找在查找表中确定是否存在一个数据元素的关键字等于给定值的操作,称为查找(也称为检索)。
(6)内查找外查找整个查找过程全部在内存进行,则称为内查找若在查找过程中还需要访问外存,则称为外查找。
(7)平均查找长度ASL
查找成功时平均查找长度:
其中:Pi为找到表中第i个数据元素的概率,且有:
Ci为查找表中第i个数据元素所用到的比较次数。不同的查找方法有不同的Ci。
2.顺序查找
顺序查找又称线性查找,是最基本的查找方法之一。顺序查找既适用于顺序表,也适用于链表。顺序查找的基本思想:从表的一端开始,顺序扫描线性表,依次按给定值kx与关键字(Key)进行比较,若相等,则查找成功,并给出数据元素在表中的位置;若整个表查找完毕,仍未找到与kx相同的关键字,则查找失败,给出失败信息。
3.二分查找
二分查找也叫折半查找,是一种效率较高的查找方法,但前提是表中元素必须按关键字有序(按关键字递增或递减)排列。二分查找的基本思想:在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键字相等,则查找成功;若给定值小于中间元素的关键字,则在中间元素的左半区继续查找;若给定值大于中间元素的关键字,则在中间元素的右半区继续查找。不断重复上述查找过程,直到查找成功,或所查找的区域无数据元素,查找失败。
4.分块查找
将具有n个元素的主表分成m个块(也称为子表),每块内的元素可以无序,但要求块与块之间必须有序,并建立索引表。索引表包括两个字段:关键字字段 (存放对应块中的最大关键字值) 和指针字段 (存放指向对应块的首地址) 。查找方法如下:
(1)在索引表中检测关键字字段,以确定待找值kx所处的分块(可用二分查找)位置;
(2)根据索引表指示的首地址,在该块内进行顺序查找。
5.二叉排序树(Binary Sort Tree)
二叉排序树或者是一棵空树;或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于根结点的值;
(3)左右子树也都是二叉排序树。
6.平衡二叉树(AVL树)
所谓平衡二叉树是指树中任一结点的左、右子树高度大致相等的二叉树。平衡二叉树(AVL树)定义如下:
平衡二叉树或者是一棵空树,或者是具有以下性质的二叉排序树:
(1)它的左子树和右子树的高度之差(称为平衡因子)的绝对值不超过1;
(2)它的左子树和右子树又都是平衡二叉树。
7.哈希表
选取某个函数,依该函数按关键字计算元素的存储位置,并按此存放。查找时,由同一个函数对给定值kx计算地址,将kx与地址单元中元素关键字进行比,确定查找是否成功,这就是哈希方法。哈希方法中使用的转换函数称为哈希函数,按这个思想构造的表称为哈希表。
9.2 典型习题分析
【例1】静态查找和动态查找两者的根本区别在于( )。
A.逻辑结构不同 B.存储实现不同
C.施加的操作不同 D.数据元素类型不同
分析:根据施加不同运算,查找分为静态查找和动态查找两类,静态查找仅包含检索操作,而动态查找不仅包含检索操作,还允许增加元素和删除元素等操作。所以是施加的操作不同,选择C。
【例2】顺序查找法与二分查找法对存储结构的要求是( )。
A.顺序查找与二分查找均只适用于顺序表 B.顺序查找只适用于顺序表
C.顺序查找与二分查找既适用于顺序表,也适用于链表 D.二分查找只适用于顺序表
分析:由第1题知道顺序查找比较适用于顺序表和链表。故A和B不对。二分查找表中元素必须按关键字有序(按关键字递增或递减)排列,在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键字相等,则查找成功……。从这里可以看出二分查找,要随机取元素的关键字和查找对像比较,二分查找只适合顺序存储,C也不正确,选D。
【例3】顺序表可以采用的三种查找方法是什么?这三种查找方法对查找表中元素的要求各是什么?在含n个元素的顺序表中,其等概率情况下查找成功的平均查找长度各是多少?
分析:顺序表可以采用的三种查找方法,分别是顺序查找法、二分查
您可能关注的文档
最近下载
- 高边坡专项施工方案(专家论证版).pdf VIP
- 《工程化学基础》教案-第3章-2011.ppt VIP
- 抗日英雄王二小.pptx VIP
- 第5课 用发展的观点看问题-【中职专用】2024年中职思想政治《哲学与人生》金牌课件(高教版2023·基础模块).pptx VIP
- 老友记台词剧本第一季第1集中英双语左右对照.pdf VIP
- 形势与政策社会实践报告模板.docx VIP
- 全套SPC表格(很全面) CPK.xls VIP
- T_CI 540-2024 红枣蒸馏酒生产技术规程.pdf
- 施工组织设计方案(高速公路通信迁改).docx VIP
- Part3-4 Unit6 Craftsmanship课件高一英语(高教版基础模块2).pptx
文档评论(0)