【摘要】:哈希表又被称为散列表,是一种将元素的存储位置与该元素的关键字之间建立对应关系的线性表存储结构。这种情况被称为哈希冲突。根据抽屉原理,冲突是不可能完全避免的。为此在设计哈希表时应当尽量减少冲突的发生,在冲突发生时应寻找解决冲突的方法。
静态查找表和动态查找表的查找算法都要通过将关键字值与给定值比较,来确定位置,查找效率取决于比较次数。理想的查找方法不需要比较,根据给定值就能直接定位记录的存储位置,即在元素的存储位置与该元素的关键字之间建立一种确定的对应关系,使每个元素的关键字与一个存储位置对应。
哈希表又被称为散列表,是一种将元素的存储位置与该元素的关键字之间建立对应关系的线性表存储结构。其基本思路是,设有一个需要存储n个数据元素的线性表,一个长度为m(m≥n)的连续存储单元,以线性表中每个元素的关键字ki(0≤i≤n-1)为自变量,通过哈希函数H,把ki映射到内存单元地址H(ki),并把元素存储到该单元中。H(ki)被称为哈希地址,又被称为散列地址。
除了特别简单的应用,在大多数情况下,构造出的哈希函数是多对一的关系(非单射函数),即可能有多个不同的关键字对应的哈希函数值是相同的,这意味着不同元素的关键字由哈希函数确定的存储位置是相同的,即key1≠key2,但H(key1)=H(key2)。这种情况被称为哈希冲突。(www.daowen.com)
根据抽屉原理,冲突是不可能完全避免的。由于冲突的存在,在建立哈希表时将无法唯一地确定关键字和存储地址的对应关系。为此在设计哈希表时应当尽量减少冲突的发生,在冲突发生时应寻找解决冲突的方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关数据结构的文章