直接定址法:
直接取关键字的某个线性函数值为散列地址。Hash(key) = a*key + b (其中a,b为常数)
方法简单,不会产生冲突,若关键字分布不连续,则会浪费空间。
解决哈希冲突的方法:开放定址法、拉链法
开放定址法中不能随便删除某个元素,因为会导致对相同H(key)的后续检索,当几个不同key的H(key)相同时,需要根据增量序列计算查看当前key是否存在了其他的地址位,如果中间的某个key被删除,则不在向后继续检索,会被认为该key不在表中。解决办法是在删除时做标记,标记被删除的地址在之前存放过元素。
拉链法(哈希桶):适用于经常进行插入和删除的情况。与开放定址法相比,拉链法的插入删除不会对映射到同一地址的其他key造成影响
装的越满,发生冲突的概率越大,查找效率越低
原文:https://www.cnblogs.com/0patrick/p/14206155.html