`

Hash算法原理

阅读更多

这个问题有点难度,不是很好说清楚。

我来做一个比喻吧。
我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均 (我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈。
然后把每个小猪,按照体重赶进各自的猪圈里,记录档案。

好 了,如果我们要找某个小猪怎么办呢?我们需要每个猪圈,每个小猪的比对吗?
当然不需要了。

我们先看看要找的这个小猪的体重,然 后就找到了对应的猪圈了。
在这个猪圈里的小猪的数量就相对很少了。
我们在这个猪圈里就可以相对快的找到我们要找到的那个小猪了。

对 应于hash算法。
就是按照hashcode分配不同的猪圈,将hashcode相同的猪放到一个猪圈里。
查找的时候,先找到 hashcode对应的猪圈,然后在逐个比较里面的小猪。

所以问题的关键就是建造多少个猪圈比较合适。

如果每个小猪的体 重全部不同(考虑到毫克级别),每个都建一个猪圈,那么我们可以最快速度的找到这头猪。缺点就是,建造那么多猪圈的费用有点太高了。

如果 我们按照10公斤级别进行划分,那么建造的猪圈只有几个吧,那么每个圈里的小猪就很多了。我们虽然可以很快的找到猪圈,但从这个猪圈里逐个确定那头小猪也 是很累的。

所以,好的hashcode,可以根据实际情况,根据具体的需求,在时间成本(更多的猪圈,更快的速度)和空间本(更少的猪 圈,更低的空间需求)之间平衡。

 

 

分享到:
评论

相关推荐

    GeoHash核心原理解析

    GeoHash编码算法的步骤包括: 1. 根据给定的经纬度坐标,将地球的纬度和经度区间分别进行二分,然后逐步逼近实际的经纬度值,使用二进制编码记录每次区间划分时的左或右区间。 2. 将得到的纬度和经度二进制编码交替...

    hash join算法原理

    二、Hash Join 原理 在实际操作中,Hash Join假设连接键上的数据分布是均匀的,但这并不总是成立。Oracle为此引入了一些优化技术: 1. 位图向量过滤:在构建Hash Table时,Oracle记录连接键的唯一值,形成位图向量...

    一致性Hash算法的原理及实现

    ### 一致性Hash算法的原理及实现 #### 一、引言 一致性Hash算法是一种用于解决分布式环境下数据存储和检索问题的重要技术。它最初由David Karger等人在1997年的论文《Consistent Hashing and Random Trees: ...

    Java实现GeoHash算法

    Java实现GeoHash算法是一种在IT领域中用于地理位置数据存储和检索的技术。GeoHash将经纬度坐标转换为字符串,使得地理位置可以被高效地索引和查询。这种算法利用了空间分割和编码策略,使得相邻的位置在编码后具有...

    C语言实现hash算法

    这个项目提供的C语言源码可以作为学习和理解哈希算法的实例,帮助开发者深入理解这些算法的工作原理,并能够在自己的项目中应用或修改这些代码。在实际使用时,需要注意版权问题,遵循开源许可协议,以及根据具体...

    Hash join算法原理

    Hash Join 算法是 Oracle 数据库中一种高效的连接操作方法,特别适用于处理大数据量的查询。自从 Oracle 7.3 版本开始引入,它主要用于处理相等连接,并且只在 Cost-Based Optimizer (CBO) 模式下运行。相比Nested ...

    geohash算法实现Java代码

    通过分析这些代码,我们可以深入理解GeoHash算法的工作原理,并且学习如何在实际项目中应用它。 GeoHash算法的使用场景广泛,例如在地图应用中,可以用来快速找到附近的服务设施;在社交网络中,可以帮助用户发现...

    hash join 原理和算法

    **二、Hash Join原理** 在实际操作中,Oracle使用哈希函数对连接键进行运算,将数据分到不同的分区。例如,通过求余函数(Mod(join_column_value,10))将数据分到10个分区。这样,只需处理匹配的分区对,减少不必要...

    Hash算法MD5实验报告材料.doc

    "Hash算法MD5实验报告材料" 本实验报告主要介绍了Hash算法MD5的实验报告,旨在通过实际编程来了解MD5算法的加密和解密过程,并加深对Hash算法的认识。 一、Hash算法的定义 Hash算法是一种将输入数据转换为固定...

    hash算法相关介绍

    ### Hash算法相关介绍 在计算机科学领域,哈希(Hash)是一种将任意长度的数据映射为固定长度数据的技术。哈希算法广泛应用于多种场景中,包括但不限于数据完整性验证、密码存储、快速查找等。本文主要介绍了几种...

    hash算法大全.doc

    在这里,我们将详细介绍这些 Hash 算法的实现和原理。 加法 Hash 加法 Hash 是一种简单的 Hash 算法,它将输入字符串的每个字符的 ASCII 码值相加,然后取模一个质数来得到 Hash 值。这种算法的优点是计算速度快,...

    hash算法C代码实现

    本文将深入探讨哈希算法的原理,并提供一个简单的C语言实现示例。 哈希算法,又称为散列函数,是一种将任意长度的输入(也叫做预映射或消息)转化为固定长度输出的函数。这个输出通常被称为哈希值或散列码。哈希...

    Hash算法快速存取数据

    #### 二、Hash算法的工作原理 Hash算法的核心思想是通过设计一种高效的算法来建立键值与实际存储的数据之间的映射关系。这种映射关系的特点是:每个实际的数据项只能对应一个唯一的键值,但一个键值可能对应多个...

    几种经典的Hash算法的实现(源代码)

    ### 经典Hash算法概述与实现 #### 一、引言 哈希算法在计算机科学领域扮演着极其重要的角色,特别是在数据检索、信息安全以及数据完整性校验等方面。它能够将任意长度的数据转换成一个固定长度的哈希值,这一过程在...

    实验五:安全Hash算法SHA-1的实现

    尽管如此,了解SHA-1的工作原理仍然非常重要,尤其是对于学习更先进的Hash算法如SHA-256等来说。 #### 二、SHA-1的基本原理 SHA-1算法的主要步骤可以概括为以下几点: 1. **预处理**:首先,原始消息被进行预处理...

    SPlayer视频文件hash算法 - Google Docs.rar_HASH播放器_HASH特征码_HASH算法_hash播

    标题中的"SPlayer视频文件hash算法"指的是射手播放器(SPlayer)用于识别和验证视频文件的一种特定技术。这种算法能够生成一个唯一哈希值(hash value),也称为特征码,来表示文件的内容。哈希算法在信息技术中广泛...

Global site tag (gtag.js) - Google Analytics