第七章 查找技术
一、基本术语
1.记录/关键码:查找问题中的数据元素称为记录;标识一个记录的某个数据项称为关键码;能唯一标识一个记录的关键码称为主关键码
2.查找:在具有同类型记录的集合中找出给定条件的记录
3.静态查找:不涉及插入和删除操作的查找
4.动态查找:设计插入和删除操作的查找
5.查找结构:专门为查找操作设计的数据结构
(1)线性表:适用静态查找,主要采用顺序查找技术、折半查找技术
(2)树表:适用动态查找,主要采用二叉排序树查找技术
(3)散列表:适用静态查找和动态查找,主要采用散列技术
6.查找算法的时间性能:用平均查找长度来度量(关键码比较次数的期望)
(1)对于查找成功:平均查找长度=查找成功对应的关键码比较次数=所有结点的比较次数之和/结点的个数
(2)对于查找失败:平均查找长度=查找失败对应的关键码比较次数=所有外结点的比较次数之和/外结点的个数
二、线性表的查找技术
1.顺序查找:应用于顺序存储和链式存储,平均查找长度为O(n)
2.折半查找:要求表中记录按关键码有序并采用顺序存储,平均查找长度为O(log2n)
3.折半查找判定树
(1)判定树:描述折半查找过程的的二叉树,称为折半查找判定树,简称判定树,一个结点对应一个记录,结点的值对应记录在表中的位置
(2)判定树的构造方法:
第一步:确定结点值的区间:若有序表