哈希表查找和哈希表的构造过程基本一致,见下图
哈希表插入和查询的例子(先省略)
(1)哈希表虽然建立了关键字和记录的存储位置之间的映射关系,但是由于冲突,导致是一个多对一的映射,
所以,哈希表的查找效率是平均查找长度;
(2)查找过程中徐鹤给定值进行比较的关键字的个数取决于三个因素:哈希函数,处理冲突的方法和装填因子
(3)一般情况下,处理冲突方法相同的哈希表,其平均查找长度依赖于哈希表的装填因子。
哈希表装填因子的定义:
表示哈希表的装填程度,越小,发生冲突的可能性就越小;反之越大,表示已填入的记录越多,发生冲突的可能性越大,
则查找时需要比较的关键字个数越多。
长度m,已填入的个数为n,哈希表的平均查找长度是的函数,而不是n的函数,所以不管n多大,总可以选择一个合适的
装填因子来将平均查找长度限制在一个范围内部。
需要注意的是,如果在非链地址处理冲突的哈希表中删除一个记录,则需要在该记录的位置上填入一个特殊符号,
以免找不到它之后填入的同义词记录。
对于预先知道且规模不大的关键字集,尽可能找到不发生冲突的哈希函数。
时间: 2024-11-05 06:55:34