线性探测法构造哈希表(hash)
来源:互联网 发布:mac口红rebel试色 编辑:程序博客网 时间:2024/04/29 20:51
以下是用线性探测法构造哈希表的一个具体例子:
已知一组关键字为(39,49,54,38,44,28,68,12,06,77),用除余法构造散列函数,用线性探查法解决冲突构造这组关键字的散列表。
解答:为了减少冲突,通常令装填因子α<l。这里关键字个数n=10,不妨取m=13,此时α≈0.77,散列表为T[0..12],散列函数为:h(key)=key%13。
由除余法的散列函数计算出的上述关键字序列的散列地址为(0,10,2,12,5,2,3,12,6,12)。
前5个关键字插入时,其相应的地址均为开放地址,故将它们直接插入T[0],T[10),T[2],T[12]和T[5]中。
当插入第6个关键字15时,其散列地址2(即h(15)=15%13=2)已被关键字41(15和41互为同义词)占用。故探查h1=(2+1)%13=3,此地址开放,所以将15放入T[3]中。
当插入第7个关键字68时,其散列地址3已被非同义词15先占用,故将其插入到T[4]中。
当插入第8个关键字12时,散列地址12已被同义词38占用,故探查hl=(12+1)%13=0,而T[0]亦被26占用,再探查h2=(12+2)%13=1,此地址开放,可将12插入其中。
已知一组关键字为(39,49,54,38,44,28,68,12,06,77),用除余法构造散列函数,用线性探查法解决冲突构造这组关键字的散列表。
解答:为了减少冲突,通常令装填因子α<l。这里关键字个数n=10,不妨取m=13,此时α≈0.77,散列表为T[0..12],散列函数为:h(key)=key%13。
由除余法的散列函数计算出的上述关键字序列的散列地址为(0,10,2,12,5,2,3,12,6,12)。
前5个关键字插入时,其相应的地址均为开放地址,故将它们直接插入T[0],T[10),T[2],T[12]和T[5]中。
当插入第6个关键字15时,其散列地址2(即h(15)=15%13=2)已被关键字41(15和41互为同义词)占用。故探查h1=(2+1)%13=3,此地址开放,所以将15放入T[3]中。
当插入第7个关键字68时,其散列地址3已被非同义词15先占用,故将其插入到T[4]中。
当插入第8个关键字12时,散列地址12已被同义词38占用,故探查hl=(12+1)%13=0,而T[0]亦被26占用,再探查h2=(12+2)%13=1,此地址开放,可将12插入其中。
类似地,第9个关键字06直接插入T[6]中;而最后一个关键字51插人时,因探查的地址12,0,1,…,6均非空,故51插入T[7]中。
转载自:http://blog.163.com/wf_shunqiziran/blog/static/1763072092012612114126231/
0 0
- 线性探测法构造哈希表(hash)
- 线性探测法构造hash表
- 线性探测法hash
- hash表线性探测法
- 使用线性探测法构造哈希表
- 利用线性探测法构造哈希表
- 哈希表的构造之线性探测法
- Hash线性探测法C++实现
- 哈希表---线性探测法
- hash冲突之线性探测
- 线性探测法构建哈希表
- 开放定址法(线性探测),拉链法 -Hash算法
- hash线性探测开放定址法解决冲突
- 哈希表线性探测&二次探测
- 【除留余数法定义hash函数+线性探测法解决hash冲突】数据结构实验之查找七:线性之哈希表
- 平方探测法hash
- POJ 1186 hash 线性探测再散列
- Hash解决冲突之线性探测
- 第六章分组函数
- 【HTML】内联框架
- JSON的用法
- 随笔
- hdu5336&15年多校集训(4)j题(bfs+模拟)
- 线性探测法构造哈希表(hash)
- DOM解析器
- Reverse Integer leetcode
- Linux内核——伙伴系统和slab缓存
- uva 1600
- 欢迎使用CSDN-markdown编辑器
- SAX解析器
- socket选项总结(setsocketopt)
- poj 1151 Atlantis