散列函数之处理散列冲突方法
2015-09-16 09:53
405 查看
1.开放定址法
所谓开发定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入。
它的公式是:,这种也称线性探测法。可能一开始学的同学看到di不知道怎么回事,其实这个di就是当遇到冲突时是要加的数字,到底怎么加呢?道理很简单,冲突时,冲突一次就加1再计算fi,如果还冲突那就试下加2,一直到不冲突为止。
当时,被称为二次探测法,道理同上
当为随机数时称为随机探测法,道理也同上。
2.再散列函数法
公式:
这里的就是不同的散列函数,你可以把我们前面说的什么除留余数、折叠、平方取中全部用上。每当发生散列地址冲突时,就换一个散列函数计算, 总会有一个可以找到把冲突解决掉的方法。这种方法能够使得能够使得关键字不产生聚焦,当然,相应地也增加了计算时间
3.链地址法
4.公共溢出区法
所谓开发定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入。
它的公式是:,这种也称线性探测法。可能一开始学的同学看到di不知道怎么回事,其实这个di就是当遇到冲突时是要加的数字,到底怎么加呢?道理很简单,冲突时,冲突一次就加1再计算fi,如果还冲突那就试下加2,一直到不冲突为止。
当时,被称为二次探测法,道理同上
当为随机数时称为随机探测法,道理也同上。
2.再散列函数法
公式:
这里的就是不同的散列函数,你可以把我们前面说的什么除留余数、折叠、平方取中全部用上。每当发生散列地址冲突时,就换一个散列函数计算, 总会有一个可以找到把冲突解决掉的方法。这种方法能够使得能够使得关键字不产生聚焦,当然,相应地也增加了计算时间
3.链地址法
4.公共溢出区法
相关文章推荐
- 现在公开一个DHT网络爬虫网络爬虫供大家一起交流
- 利用DHT网络原理制作bt采集蜘蛛,开源版
- 现在公开一个DHT网络爬虫网络爬虫供大家一起交流
- boost unordered 初识
- Torrent文件
- 闲暇时间看了下DHT网络
- 现在公开一个DHT网络爬虫网络爬虫供大家一起交流
- 闲暇时间看了下DHT网络
- 闲暇时间看了下DHT网络
- 利用DHT网络原理制作bt采集蜘蛛,开源版
- 二次探测再散列散列表 源代码(数据结构)
- 散列函数的构造方法
- 闲暇时间看了下DHT网络
- 用分离链接法的HashTable的实现
- 散列表
- Java中链表、堆栈、队列、二叉树、散列表等数据结构的实现
- 散列表性质与实现
- 文件的hash值
- 暴雪公司字符串散列函数
- C++ hash_map