- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DS2016_CH7动画版
第七章查找
查找表
静态查找表
动态查找表
哈希表
下一章
查找表 Search Table
定义:是同一类型的数据元素构成的集合。
集合中的数据元素之间存在着松散的关系
对查找表经常进行的操作:
1)查询某个 “特定的”数据元素是否在查找表中;
2 )检索某个 “特定的”数据元素的各种属性;
3 )在查找表中插入一个数据元素;
4 )从查找表中删去某个数据元素。
查找表可分为两类:
静态查找表:仅作查询和检索操作的查找表
动态查找表:查找过程中,还进行数据元素插入或删除操作的查找表
查找表 Search Table
查找Searching——是根据给定的某个值,在表中确定一个
关键字等于给定值的记录或数据元素
关键字Key——数据元素中某个数据项的值,它可以标识一
个数据元素
主关键字Primary Key——可以唯一标识一个记录的关键字
次关键字Secondary Key——可以标识若干记录的关键字
查找结果——“查找成功”,给出整个记录的信息,或指示
该记录在查找表中的位置;“查找不成功”,给出“空记录”
或“空指针”
查找表 Search Table
查找方法评价
查找速度
占用存储空间多少
算法本身复杂程度
平均查找长度ASL(Average Search Length):为确定
记录在表中的位置,需要与给定值进行比较的次数的期
望值叫查找算法的~
平均查找长度ASL :
n
对含有n个记录的表,ASL p c
i i
i1
n
其中:p 为查找表中第i个元素的概率, p 1
i i
i1
c为找到表中第i个元素所需比较次数i
查找表 Search Table
查找实现中涉及的类型定义
typedef int KeyType;
//typedef float KeyType;
//typedef char * KeyType;
typedef struct {
KeyType key;
……
}ElemType;
静态查找表 Static Search Table
静态查找表:仅作查询和检索操作的查找表
顺序表查找顺序查找
有序表查找折半查找
索引顺序表查找分块查找
静态查找方法比较
顺序表查找 Sequential Search Table
以顺序表或线性链表表示静态查找表,可用顺序查找实现
静态查找表的顺序存储结构
typedef struct
{ ElemType *elem; // 数据元素存储空间基址,
//建表时按实际长度分配,0号单元留空
int length; //表的长度
}SSTable;
顺序表查找 Sequential Search Table
顺序查找过程:从表的一端开始逐个进行记录关
键字和给定值的比较
文档评论(0)