首页 > 代码库 > 哈希表之四查找及分析

哈希表之四查找及分析

哈希表查找和哈希表的构造过程基本一致,见下图

技术分享

哈希表插入和查询的例子(先省略)

(1)哈希表虽然建立了关键字和记录的存储位置之间的映射关系,但是由于冲突,导致是一个多对一的映射,

所以,哈希表的查找效率是平均查找长度;

(2)查找过程中徐鹤给定值进行比较的关键字的个数取决于三个因素:哈希函数处理冲突的方法装填因子

(3)一般情况下,处理冲突方法相同的哈希表,其平均查找长度依赖于哈希表的装填因子。

哈希表装填因子的定义:

技术分享

技术分享表示哈希表的装填程度,技术分享越小,发生冲突的可能性就越小;反之技术分享越大,表示已填入的记录越多,发生冲突的可能性越大,

则查找时需要比较的关键字个数越多。

长度m,已填入的个数为n,哈希表的平均查找长度是技术分享的函数,而不是n的函数,所以不管n多大,总可以选择一个合适的

装填因子来将平均查找长度限制在一个范围内部。

需要注意的是,如果在非链地址处理冲突的哈希表中删除一个记录,则需要在该记录的位置上填入一个特殊符号,

以免找不到它之后填入的同义词记录。

对于预先知道且规模不大的关键字集,尽可能找到不发生冲突的哈希函数。

 

哈希表之四查找及分析