哈希表
在线性表和树中,查找记录是比较和移动, 理想情况下,一次就可以取出记录,那就要在记录的关键字和记录的存储地址之间建立唯一确定的关系f,我们把f叫做哈希函数,由哈希函数建立起的表叫做哈希表。
,哈希函数会出现冲突,就是不同的关键字经过哈希函数后得到相同的哈希地址,这是因为关键字集合足够大,而地址集合是有限的。由此可见,哈希函数是一个压缩镜像。
先给出哈希表的定义:根据设定的哈希函数和处理冲突的方法,将一组关键字映像到一个有限的连续的地址集,并以关键字在地址集中的像为记录在表中存储位置,这种表便称为哈希表。
解放后出生人口调查表,关键字是年份
哈希函数H(key)=key-1949
地址 | 01 | 02 | 03 | 04 | 05 |
年份 | 1949 | 1950 | 1951 | 1952 | 1953 |
人数 | 100 | 200 | 300 | 400 | 500 |
哈希函数的设定是自定义的,入上面的直接定址法(又叫自身函数)
冲突的解决方案:
常见的是链地址法,和建立公共溢出区,再哈希法。