`
liulanghan110
  • 浏览: 1075640 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关于哈希算法

    博客分类:
  • JAVA
阅读更多



 先看这样一个问题。比如有一个大小为10的数组,我要把1-9放进去。那么有一种办法就是按顺序从数组的第一个一直放到最后一个。比如我这么放2,4,6,8,1,3,5,7,9 ,那么我要查找一个数在在这个数组的哪个位置时,我得用一个循环检测。当数组很大时,效率会很低。如果我这样做呢?将元素与9求余,得到一个结果,之后将元素放到该位置。比如,2%9 结果为2,那么数组的第2个位置放上2。每个元素都根据这样的一个函数处理后放到指定的位置。那么当查找该元素时,只需要将该元素利用之前的函数再处理一次,就可以得到其在哪个位置。如,我需要查找9的位置。那么我用9%9,知道9在数组的第一个位置。也就是说,此时查找不必循环数组的每一个元素了,而直接根据函数来得到元素位置。

 

上面的方法就是哈希算法,与9求余,就是一个哈希函数,而求余的结果就是一个哈希值,也称为哈希代码。

 

也许你会发现,如果我要放0进去,利用哈希函数,0%9,结果为0。可以知道它和9会在一个位置(都放在数组的第0个位置)。这也就产生了哈希冲突。那么,怎么解决这样的冲突呢?当9已经放在了数组的第一个位置时,如果有新的元素和它位置一样。那么就放在9的下面,如下图:

0就放在9的下面,如果继续有重复的,比如18,那么继续放在0的下面。这里的实现并不是数组,而是链表。

  • 大小: 5.5 KB
分享到:
评论

相关推荐

    C语言下很实用的哈希算法

    这些标签暗示了这个压缩包包含的是关于哈希算法的实现和应用。 压缩包中的文件: 1. `userguide.pdf`:这很可能是用户指南或文档,详细介绍了如何使用提供的哈希库,包括安装步骤、API的使用示例、性能分析以及可能...

    Matlab实现感知哈希算法

    **感知哈希算法详解与Matlab实现** 感知哈希(Perceptual Hashing,简称pHash)是一种图像识别技术,用于判断两张图片是否相似。它通过模拟人类视觉系统的感知特性,将图片转换成一个简短的哈希值,进而进行比较。...

    ACM-ACM竞赛常用算法之哈希算法实现.zip

    哈希算法在ACM(国际大学生程序设计竞赛)中扮演着至关重要的角色,因为它能高效地处理各种数据结构和问题。...通过深入学习和实践,我们可以掌握更多关于哈希算法的应用技巧,以应对复杂多样的竞赛题目。

    暴雪哈希算法全部源码

    ### 暴雪哈希算法源码解析与应用 #### 一、暴雪哈希算法简介 暴雪娱乐(Blizzard Entertainment)是一家知名的电子游戏开发公司,其在游戏开发领域有着丰富的经验和深厚的技术积累。其中,一个被广泛讨论且具有较...

    常用哈希算法代码实现

    哈希算法,又称散列函数或哈希函数,是信息技术领域中的一种重要工具,尤其在数据完整性检查、信息安全、数据库索引以及密码学等多个方面有着广泛的应用。在本压缩包中,你可能会找到多种常见的哈希算法的代码实现,...

    基于python与哈希算法实现图像去重

    本文将深入探讨如何利用Python编程语言和哈希算法来有效地实现图像去重。 首先,我们要理解哈希算法的基本原理。哈希(Hash)算法是一种将任意长度的输入(也叫做预映射)通过一个算法,变换成固定长度的输出,这个...

    哈希算法详细介绍pdf

    尽管哈希算法有很多种,如MD5、SHA-1等,但SHA-1由于其良好的安全性和可靠性,成为了非常重要的哈希算法之一。 数字签名是电子商务活动中不可或缺的技术,它允许用户通过使用密码学原理来验证信息的来源和完整性。...

    哈希算法Hash

    哈希算法 Hash 哈希算法 Hash 是一种常用的数据加密技术,用于将任意长度的数据转换为固定长度的哈希值。哈希算法 Hash 的设计目的是为了实现数据的加密和身份验证。下面我们将对哈希算法 Hash 进行详细的介绍和...

    针对8位单片机的哈希算法实现

    哈希算法,也称为散列函数,是一种将任意长度的数据转化为固定长度输出的函数。在信息安全、数据验证和数字签名等领域扮演着重要角色。本文主要关注的是如何在8位单片机上实现SHA1哈希算法,这是一种广泛使用的哈希...

    论文研究-分布式存储系统的哈希算法研究.pdf

    针对分布式存储系统中如何实现数据在物理存储上的均匀分布和高效定位的问题,对多种哈希算法展开研究,提出了衡量分布式存储系统哈希算法优劣的标准;从散列分布性、哈希冲突和计算效率等多个维度对这些哈希算法进行...

    分布式存储系统的哈希算法研究.pdf

    在分布式存储系统中,哈希算法扮演着至关重要的角色,它能够将数据均匀地分布在不同的存储节点上,同时还能够高效地定位数据,从而提高系统的性能。 哈希算法的基本原理是将输入数据(通常是字符串或其他数据类型)...

    相似图搜索原理-感知哈希算法

    其核心是通过哈希算法来创建图像的数字指纹,以便快速比较和识别图像的相似性。 感知哈希算法(Perceptual Hash algorithm)是实现相似图搜索的一种有效方法。它的设计灵感来源于人类视觉系统对图像的感知,即在...

    哈希算法的实现

    哈希算法,也被称为散列函数,是一种在计算机科学中广泛使用的数据结构和算法。它通过将任意长度的输入(也称为预映射)转换为固定长度的输出,这个输出通常是一个数字序列,称为哈希值。哈希算法在很多领域都有应用...

    图片识别-感知哈希算法

    感知哈希算法是一种在图像处理领域中用于比较和识别图像的技术。它的主要目的是将图像转换成一种紧凑且可比较的数字“指纹”,这样就可以高效地判断两张图片是否相似或相同。这种技术在诸如搜索引擎的图片搜索功能、...

    SHA256、MD5哈希算法实现

    哈希算法,也被称为散列函数,是一种在信息安全领域中广泛应用的技术。它们的主要作用是将任意长度的输入(也称为预映射或消息)转换为固定长度的输出,这个输出通常是一个二进制数字串,被称为哈希值。在本文中,...

    delphi国产哈希算法SM3源码

    delphi下面开发的国产哈希算法SM3可以直接调用接口 里面的代码注释写的很明白 我自己做项目测试了可以使用 没得问题

    python 密码学示例——理解哈希(Hash)算法

    哈希算法是一种单向函数,它将任意长度的输入(也称为预映像)转化为固定长度的输出,这个输出被称为哈希值或消息摘要。哈希算法的设计目标是使得输入的微小变化都会导致输出的显著不同,这样就很难通过哈希值推断...

    感知哈希算法(Python版)

    Python3实现基于PHA实现图像配准

    ssl证书生成工具解决弱哈希算法签名的SSL证书(CVE-2004-2761)

    弱哈希算法签名的SSL证书(CVE-2004-2761)。 远程服务使用SSL证书链,该证书链已使用加密弱哈希算法(例如MD2、MD4、MD5或SHA1)签名。这些签名算法很容易受到碰撞攻击。攻击者可以利用这一点生成另一个具有相同数字...

    几个比较著名的哈希算法

    哈希算法,也被称为散列函数,是一种在计算领域中广泛应用的数据处理技术。它通过将任意长度的输入(也称为预映射或消息)转换为固定长度的输出,这个输出通常是一个二进制数字,也被称为哈希值或散列码。哈希算法的...

Global site tag (gtag.js) - Google Analytics