优美的HASH运算

作者: 君满楼001 | 来源:发表于2017-11-13 22:57 被阅读25次

一,Hash函数:
是把任意长度的输入,通过Hash算法变换成固定长度的输出,该输出就是Hash值;这种转换是一种压缩映射,也就是Hash值的空间远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。

二, Hash应满足的条件:
2.1 每个关键字都可以均匀地分布到Hash表任意一个位置;
2.2 与已被散列到Hash表中的关键字不发生冲突;

三,关键字:整数或字符串

3.1 整数关键字的Hash算法:
3.1.1 直接取余法:关键字K除以Hash表的大小m取数:
算法:h(k) = k mod m; 100 mod 12 则 h=4;
3.1.2 乘积取整法
使用关键字K乘以一个常数A(0<A<1), 取出kA的小数部分,然后用Hash表大小m乘以这个值,再取整数部分:
h(k) = floor(m * (kA mod 1)); kA mod 1 表示kA的小数部分, floor是取整操作

3.2 字符串关键字算法: 所有字符串的ASCII码加起来得到一个整数:在计算;

四,Hash表: 最为重要的数据结构之一:
结构:Hash表的时间复杂度为O(1),

4.1 Hash表的实现步骤:
创建数组存放数据; 设计Hash函数;关键字映射,数据存储;

五,键值的唯一;
5.1 开放定址法;
5.2 拉链法

相关文章

  • 优美的HASH运算

    一,Hash函数:是把任意长度的输入,通过Hash算法变换成固定长度的输出,该输出就是Hash值;这种转换是一种压...

  • HashMap - hash算法详解

    1. 重点代码 hash再运算 计算桶位置 2. 代码讲解 key的hash值做再运算这里采用的是hash值高16...

  • 409. Longest Palindrome

    Javascript 优解,用了hash

  • 面试准备第三篇

    1.实现isEqual和hash方法时要注意什么? |hash 对关键属性的hash值进行位或运算作为hash值 ...

  • 什么是hash(散列、哈希)运算

    你:什么是hash(散列、哈希)运算? 我:简单来说,hash运算是个折中方案。 你:什么问题的折中方案呢? 我:...

  • HashMap的put过程

    1、hash(key),取key的hashcode进行高位运算,返回hash值 (key == null) ? 0...

  • PHP操作Redis常用命令

    连接 运算类 服务 String Hash List Set Zset

  • vue-router两种路由模式的区别

    hash 即地址栏 URL 中的 # 符号(此 hash 不是密码学里的散列运算)。比如这个 URL:http:/...

  • findmyhash解密hash

    hash破解需要非常高的运算速度,因此个人电脑速度findmyhash通过各网站hash进行查找,尝试发现明文,如...

  • 基础问题

    HashMap的hash算法和寻址算法的优化 原hash值与右移后的hash值进行异或运算(一样就是0,不一样就是...

网友评论

    本文标题:优美的HASH运算

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