处理hash冲突的常见办法
2016-09-25 21:48
218 查看
转自:http://blog.csdn.net/kingzma/article/details/44316447
1.开放定址法:当关键码的散列地址一旦产生冲突,就去寻找下一个空的散列地址。它的方法主要有以下三种:
[html]
view plain
copy
1.线性探测:对于键值key,设H(key)=d,避散列表的长度为m,当发生冲突时,寻找下一个的单列地址为
Hi=(H(key)+di)%m ;di=1,2,3,...m
2.二次探测:散列地址公式:
Hi=(H(key)+di)%m (di=1,-1,4,-4.....,q的平法且q<m/2)
3.随机探测:
Hi=(H(key)+di)%m;di是一个随机数列。。
2.拉链法:Java中的HashMap采用这中算法。
3.公共溢出区
散列表包含基本表和溢出表,将发起冲突的记录存储在溢出表。查找时,对给定通过散列函数计算散列地址,如果基本表相应单元中的值相等,则查找成功,否则去溢出表中按顺序查找。
1.开放定址法:当关键码的散列地址一旦产生冲突,就去寻找下一个空的散列地址。它的方法主要有以下三种:
[html]
view plain
copy
1.线性探测:对于键值key,设H(key)=d,避散列表的长度为m,当发生冲突时,寻找下一个的单列地址为
Hi=(H(key)+di)%m ;di=1,2,3,...m
2.二次探测:散列地址公式:
Hi=(H(key)+di)%m (di=1,-1,4,-4.....,q的平法且q<m/2)
3.随机探测:
Hi=(H(key)+di)%m;di是一个随机数列。。
2.拉链法:Java中的HashMap采用这中算法。
3.公共溢出区
散列表包含基本表和溢出表,将发起冲突的记录存储在溢出表。查找时,对给定通过散列函数计算散列地址,如果基本表相应单元中的值相等,则查找成功,否则去溢出表中按顺序查找。
相关文章推荐
- 处理hash冲突的常见办法
- 数据表/字段名称和数据库关键字冲突在Hibernate映射中的处理办法
- AIX中远程图形界面Xmanager无法登陆的常见处理办法
- eclipse编译java程序常见错误处理办法
- 第5天:散列HASH(二)冲突解决办法之线性再散列法
- java web开发中常见的一些异常和处理办法【持续更新】
- sql server日志损坏的常见处理办法
- InfoPath的常见处理办法
- Range在各浏览器下的问题和常见处理办法
- Range在各浏览器下的问题和常见处理办法
- Hash冲突解决办法
- report service常见处理办法
- 常见问题及解决办法 整理之11(处理表中重复记录)
- Magento FAQ | Magento常见问题处理办法.
- 常见计划任务问题处理办法
- hash是如何处理冲突的?[转]
- Magento FAQ Magento常见问题处理办法.
- SVN常见错误处理和解决办法
- C++编译中常见的一些警告信息及处理办法(未完待续)
- Cocos2d-x移植Android 常见问题处理办法