美文网首页
散列表查找(哈希表)

散列表查找(哈希表)

作者: ChenL | 来源:发表于2020-05-19 15:04 被阅读0次

一、散列技术
记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每一个关键字key对应一个存储位置f(key).查找时,根据这个对应关系找到给定值key的映射f(key).若查找集合中存在这个记录,则必定在f(key)的位置上。

1、直接定制法

f(key) = a * key + b (a,b为常数);

2、数字分析法

3、平方取中法

4、折叠法
将关键字从左到右分割成位数相等的几部分(注意最后一部分位数不够可以稍微短些);然后将几部分叠加求和,并按散列表表长,取后几位作为散列地址。

5、除留余数法
f ( key ) = key mod p ( p <= m )

6、随机数法
f ( key ) = random ( key ) ;

  1. 计算公式花费时间
    2.关键字长度;
  2. 散列表⼤⼩
    4.关键字分布情况
  3. 记录查找概率

二、处理散列表冲突方法探索
1、开放定址法
开放定址法就是⼀旦发⽣了冲突,就去寻找下⼀个空的散列地址.只有散列表⾜够⼤,空的散列地址总能找到,并将记录存⼊.
开放定址法公式:
fi ( key ) = ( f ( key ) + di ) Mod m ; ( di = 1,2,3,……,m-1)

2、再散列函数法
对于散列表来说, 我们事先准备多个散列函数:
f i( key ) = RH i ( key ) (i = 1,2,…,k)
RH逻辑教育 i 指的是不同的散列函数.

3、链地址法

将所有的关键字为同义词的记录存储在⼀个单链表中,我们称为这种同义词⼦表. 在散列表中只
存储所有同义词⼦表的头指针(头地址).

4、 公共溢出法

相关文章

  • 散列表查找(哈希表)

    一、散列技术记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每一个关键字key对应一个存储位置f(ke...

  • 看看HashMap的源码

    HashMap Java中的HashMap是哈希表(散列表)的实现。哈希表存储的数据是键值对,它能实现快速的查找和...

  • 哈希表与HashCode

    散列表 又叫哈希表(hash table)。哈希表是种数据结构,它可以提供快速的插入操作和查找操作。通过访...

  • 程序员,你应该知道的数据结构之哈希表

    哈希表简介 哈希表也叫散列表,哈希表是一种数据结构,它提供了快速的插入操作和查找操作,无论哈希表总中有多少条数据,...

  • 5.ARC 的 retainCount 怎么存储的?

    存在64张哈希表中,根据哈希算法去查找所在的位置,无需遍历,十分快捷 散列表(引用计数表、weak表) SideT...

  • 哈希表

    哈希表的定义: 哈希表又叫散列表,关键值通过哈希函数映射到数组上,查找时通过关键值直接访问数组。在上面的例子里,我...

  • 哈希表和链表

    优秀文章:Chapter: 散列表(哈希表) 一、哈希表 哈希表hashtable(key,value) 就是把K...

  • 哈希算法

    什么是哈希算法 了解哈希算法需要了解以下几个概念。 散列表(hash table) 与散列函数 散列表也叫哈希表是...

  • Ⅵ. 哈希算法

    哈希技术既是一种存储方式,也是一种查找方法 哈希算法的实现步骤: 初始化创建Hash表(散列表)给定哈希函数构建H...

  • Java数据结构_哈希表_基本概念

    本文目标 哈希表的基本概念,哈希冲突,哈希函数 什么是哈希表 哈希表也叫做散列表(hash有剁碎的意思)哈希表是空...

网友评论

      本文标题:散列表查找(哈希表)

      本文链接:https://www.haomeiwen.com/subject/ecssohtx.html