开放定址散列算法
2016-02-17 13:43
302 查看
上篇文章讲解了分离链接散列算法,其实解决冲突的另一种常用方法是开发定址法。
分离链接散列算法的缺点是需要指针,由于给新单元分配地址需要时间,因此这就导致算法的速度多少有些减慢,同时算法实际上还要求对另一种数据结构的实现;
除用链表解决冲突外,开放定址散列法是另一种不用链表解决冲突的方法,在开放定址散列算法系统中,若发生冲突,那么就尝试选择另外的单元,直到找到空位置为止。
因为所有的数据都要放置在表中,所以开放地址散列法所需要的表比分离链接散列用表大。一般来说,对于开放定址散列算法来说,装填因子应不低于0.5。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
分离链接散列算法的缺点是需要指针,由于给新单元分配地址需要时间,因此这就导致算法的速度多少有些减慢,同时算法实际上还要求对另一种数据结构的实现;
除用链表解决冲突外,开放定址散列法是另一种不用链表解决冲突的方法,在开放定址散列算法系统中,若发生冲突,那么就尝试选择另外的单元,直到找到空位置为止。
因为所有的数据都要放置在表中,所以开放地址散列法所需要的表比分离链接散列用表大。一般来说,对于开放定址散列算法来说,装填因子应不低于0.5。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关文章推荐
- C#数据结构之顺序表(SeqList)实例详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 数据结构之Treap详解
- PHP实现的一致性哈希算法完整实例
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- java数据结构之java实现栈
- java数据结构之实现双向链表的示例
- Java数据结构及算法实例:选择排序 Selection Sort
- Java数据结构及算法实例:朴素字符匹配 Brute Force
- Java数据结构及算法实例:汉诺塔问题 Hanoi
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)