“ 查找--比较淡然的一章。”
主要知识点
查找表的检索机制
平均查找长度
折半查找表
二叉排序树
哈希表
1 查找表的检索机制
本章给出了三种类型的查找表,
第一类是线性索引,记录关键字一般按序排列,以提高检索速度。对应检索采用基于比较检索方法。
第二类是树形检索,树形的典型结构是二叉排序树,其检索的时间复杂度与树的深度同级为对数函数,其对应的检索方法是基于树表式的检索,即将带查找的表组织成树,在树形结构上实现查找。
第三类是哈希结构,根据数据的”关键值”计算数据的存储地址,哈希表既是建立表,也是查找表的方法,其对应的检索方式是”计算式”的检索。
2 平均查找长度
为决定数据元素在列表中的位置,需和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度。
计算平均查找长度的基本公式
对于长度为n的列表,查找成功时的平均查找长度为:
ASL=P1C1 + P2C2 +……+PnCn =∑ pici
其中pi为查找列表中第i个数据元素的概率。Ci找到列表中第i二个数据元素时,已经进行过的关键字比较次数。
计算方法:
采用公式法计算(通用),也可采用手工计算方法(具体)。针对实际的具体问题计算相应的查找成功时的平均差查找长度。
3 折半查找表
折半查找法要求查找表按照顺序存储结构且按关键字有序排列。
折半查找过程中借助于折半判定树加以描述。判定树中每一结点对应表中一个记录在表中的位置序号。
折半查找算法的性能:在等概率时查找成功的平均查找长度与折半判定树的深度相关: