- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构-ch9.pdf
数据结构
第九章 查找
主要内容
静态查找表及查找算法:顺序查找
折半查找
动态查找表及查找算法:二叉排序树
哈希表及查找算法
9.1 基本概念
9.2 静态查找
9.3 动态查找
9.4 哈希表
9.1 基本概念
查找表
用于查找的数据元素集合称为查找表。查找表由同一类
型的数据元素(或记录)构成。
静态查找表
若只对查找表进行如下两种操作:
(1)在查找表中查看某个特定的数据元素是否在查找表中;
(2)检索某个特定元素的各种属性。则称这类查找表为静
态查找表。静态查找表在查找过程中查找表本身不发生变
化。对静态查找表进行的查找操作称为静态查找。
动态查找表
若在查找过程中可以将查找表中不存在的数据元素插入,
或者从查找表中删除某个数据元素,则称这类查找表为动
态查找表。动态查找表在查找过程中查找表可能会发生变
化。对动态查找表进行的查找操作称为动态查找。
关键字(Key)
是数据元素中的某个数据项。唯一能标识数据元素(或记
录)的关键字,即每个元素的关键字值互不相同,我们称
这种关键字为主关键字;若查找表中某些元素的关键字值
相同,称这种关键字为次关键字。例如,银行帐户中的帐
号是主关键字,而姓名是次关键字。
查找
在数据元素集合中查找满足某种条件的数据元素的过程
称为查找。
最简单且最常用的查找条件是“关键字值等于某个给定值
”,在查找表搜索关键字等于给定值的数据元素(或记录)
。若表中存在这样的记录,则称查找成功,此时的查找结果
应给出找到记录的全部信息或指示找到记录的存储位置;若
表中不存在关键字等于给定值的记录,则称查找不成功,此
时查找的结果可以给出一个空记录或空指针。若按主关键字
查找,查找结果是唯一的;若按次关键字查找,结果可能是
多个记录,即结果可能不唯一。
查找表的存储结构
查找表是一种非常灵活的数据结构,对于不同的存储结构,
其查找方法不同。为了提高查找速度,有时会采用一些特殊
的存储结构。本章将介绍以线性结构、树型结构为存储结构
的各种查找算法。
查找算法的时间效率
查找过程的主要操作是关键字的比较,所以通常以“平均比
较次数”来衡量查找算法的时间效率。也称为平均查找长度。
比较次数的多少就是相应算法的时间复杂度,它是衡量一个
查找算法优劣的重要指标。平均查找长度ASL定义为:
n
ASL PC
i i
i 1
9.2 静态查找
9.2.1 顺序查找
顺序查找的基本思想
顺序表的类型描述和查找算法
顺序表查找示例
顺序表查找效率分析
顺序查找适用范围
基本思想
顺序查找是一种最简单的查找方法。其基本
思想是将查找表作为一个线性表,可以是顺序表,
也可以是链表。从表的一端开始,逐个把每条记
录的关键字值与给定值k进行比较。若某个记录
关键字值与给定值k相等,则查找成功,返回找
到的记录位置。反之,若已查找到表的另一端,
仍未找到关键字值与给定值相等的记录,则查找
不成功,返回查找失败标志。
(21, 37, 88, 19, 92, 05, 64, 56, 80, 75, 13)
顺序表的类型描述和查找算法
typedef s
文档评论(0)