决定散列表平均查找长度的因素主要有散列函数,处理冲突的方法和查找表记录数. 若查找表有n个记录,散列函数为H(k)=k%p,采用线性探测再散列法 处理冲突,则等概率条件下查 其中,C为查找第条记录的比较次数. 其中,C为从散列地址i开始线性探测,直到散列地址为空标记时的探 测次数. 例如,若哈希表的地址范围为0~17,散列函数为:H(K)=K%16,用线性探测再散列法处理冲突,对 关键字序列(10,24,32,17,31,30,46,47,40,63,49),散列表如表1所示. 356渤海大学(自然科学版)第32 若查找表有n个记录,散列函数为H(k)=k%p,采用链地址法处理冲突, 则查找成功时的平均查找长 其中,c为查找第i 条记录的比较次数. 对用拉链法求查找失败时的平均查找长度有两种观点:一种认为比较到空指针算失败,等概率条件下 另一种认为只有和关键字比较才计算比较次数,而和空指针比较不计算,等概率条件下查找失败时的 例如,若哈希函数H(k)=3K%11,散列地址空间为 0~10,对关键字序 列(32,13,49,24,38,21,4, 12)按链地址法解决冲突.散列表示意图如图3所示. 查找4,12,49,13和32 时均比较一次,查找38,24 和21 时均比较2 若认为比较到空指针算失败,则哈希地址0,2,5,7,9和10 均比较1 次失败,因此,等概率情况下查找失败时的平均查找长度 若认为只有和关键字比较才算比较次数,而和空指针比较不计算,则等概率情况下查找失败时的平均 平均查找长度是判断查找方法的一个重要指标,本文给出了顺序查找法,二分查找法,二叉排序树查 找法和散列查找法的平均查找长度的计算方法,每种算法包括查找成功和查找失败平均查找长度的计算, 并通过实例进行了解析,为学习者学习和掌握查找算法提供了帮助,同时为应用者选择查找算法提供了依 [1]秦玉平,马靖善.