美文网首页
Hash算法

Hash算法

作者: DouMarK | 来源:发表于2019-08-02 01:14 被阅读0次

Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数

Hash算法常见方法:

  • 直接定址法:直接以关键字k或者k加上某个常数(k+c)作为哈希地址。
  • 数字分析法:提取关键字中取值比较均匀的数字作为哈希地址。
  • 除留余数法:用关键字k除以某个不大于哈希表长度m的数p,将所得余数作为哈希表地址。
  • 分段叠加法:按照哈希表地址位数将关键字分成位数相等的几部分,其中最后一部分可以比较短。然后将这几* 部分相加,舍弃最高进位后的结果就是该关键字的哈希地址。
  • 平方取中法:如果关键字各个部分分布都不均匀的话,可以先求出它的平方值,然后按照需求取中间的几位作为哈希地址。
  • 伪随机数法:采用一个伪随机数当作哈希函数。
    Hash表的大小为素数的时候更加均匀

java中HashMap 和 HashTable

HashMap 与HashTable 的不同
1.HashTable 获取链表的下标是用%取模运算
2.HashMap默认的初始化大小为16,之后每次扩充为原来的2倍(扩充的大小是:数组的长度);
3.HashMap 去链表的下标是用&与运算
4.HashTable默认的初始大小为11,之后每次扩充为原来的2n+1。

相关文章

  • 分布式集群架构场景化解决方案

    一致性hash算法hash算法应用场景普通hash算法存在的问题一致性hash算法手写一致性hash算法nginx...

  • 哈希算法

    哈希算法 什么是hash函数?常见的hash算法hashlib的用法hash算法的用途 什么是hash函数? 哈希...

  • IOS 逆向开发(二)密码学 HASH

    1. HASH算法简介 1.1 HASH是什么? Hash算法(也叫散列算法) Hash,一般翻译做“散列”,也有...

  • 负载均衡中的一致性hash算法

    hash简介 说到底,他是一种hash算法,那什么是hash算法?hash算法是一种散列算法,常用的比如MD5。抽...

  • 哈希(散列函数)

    力扣题库极客时间 Hash算法也被称为散列算法,Hash算法虽然被称为算法,但实际上它更像是一种思想。Hash算法...

  • Hash一致性算法浅析

    Ngnix负载均衡策略包含Hash算法,就是通过Hash算法将请求hash求值,根据hash值定向到服务器。 假定...

  • 一致性hash算法

    Hash 算法也叫做散列算法,他可以让任意长度的数据M映射成为长度固定的值H。 Hash算法的作用 Hash算法的...

  • 一致性hash算法

    一致性hash算法 1.hash算法 先说一下hash算法,hash算法是将任意长度的二进制值映射为固定长度的二进...

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 1. IOS 字典研究

    一: Hash 算法 1. hash算法 hash称为散列表,其实本质上还是一个数组。主要是通过 hash(key...

网友评论

      本文标题:Hash算法

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