哈希表
上一节
下一节
哈希查找也称为散列查找,既是一种查找方法,也是一种存储方法,称为散列存储。散列存储的内存存放形式称为散列表,也称为哈希表。
选取某个函数,依该函数按关键字计算元素的存储位置,并按此存放;查找时,由同一个函数对给定值k计算地址,将k与地址单元中元素关键字进行比,确定查找是否成功,这就是哈希方法;哈希方法中使用的转换函数称为哈希函数;按这个思想构造的表称为哈希表。
对于n个数据元素的集合,总能找到关键字与存放地址一一对应的函数。若最大关键字为m,可以分配m个数据元素存放单元,选取函数f(key)=key即可,但这样会造成存储空间的很大浪费,甚至不可能分配这么大的存储空间。
通常关键字的集合比哈希地址集合大得多,因而经过哈希函数变换后,可能将不同的关键字映射到同一个哈希地址上,这种现象称为冲突(Collision),映射到同一哈希地址上的关键字称为同义词。可以说,冲突不可能避免,只能尽可能减少。所以,哈希方法需要解决以下两个问题:
(1)构造好的哈希函数。
1)所选函数尽可能简单,以便提高转换速度。
2)所选函数对关键码计算出的地址,应在哈希地址集中大致均匀分布,以减少空间
浪费。
(2)制定解决冲突的方案。

