哈希表(数据结构)

 

 

 直接定址法:

直接取关键字的某个线性函数值为散列地址。Hash(key) = a*key + b (其中a,b为常数)

方法简单,不会产生冲突,若关键字分布不连续,则会浪费空间。

 

 

 

解决哈希冲突的方法:开放定址法、拉链法

 

 

 

 开放定址法中不能随便删除某个元素,因为会导致对相同H(key)的后续检索,当几个不同key的H(key)相同时,需要根据增量序列计算查看当前key是否存在了其他的地址位,如果中间的某个key被删除,则不在向后继续检索,会被认为该key不在表中。解决办法是在删除时做标记,标记被删除的地址在之前存放过元素。

 

 

拉链法(哈希桶):适用于经常进行插入和删除的情况。与开放定址法相比,拉链法的插入删除不会对映射到同一地址的其他key造成影响

 

 

 装的越满,发生冲突的概率越大,查找效率越低

posted @ 2020-12-29 13:55  zeroPatrick  阅读(196)  评论(0)    收藏  举报