哈希表
这些查找方法的特点:记录在表中的位置和其关键字间不存在确定关系,查找的过程为给定值依次和各个关键字进行比较,查找的效率取决进行比较的关键字个数。它们的平均查找长度(ASL)都不为0.
若希望ASL=0
方法:预先知道所查关键字在表中的位置。
即:记录在表中位置和其关键字之间的确定关系。
在一般情况下,需在关键字和记录在表中的存储位置之间建立一个函数关系,以f(key)作为关键字为key的记录在表中的位置,通常称这个函数f(key)为哈希函数。
哈希函数是一个映像,即:将关键字的集合映射到某个地址集合上。
例子:
对哈希表进行查找的时候,待查记录不需要和其他关键字相比较,就可以发现查找是成功的还是失败的。
如果上例要添加Zhou怎么办呢?哈希表中13的位置已经有了Zhao,Zhou只能寻找下一个能够存放的空闲区域,这种就是冲突情况。
在一般情况下,容易产生“冲突”现象,key1 ≠ key2,而f(key1)= f(key2)。
很难找到一个不产生冲突的哈希函数。一