有学号和姓名为下的五个学生:5 tom、8 jane、12 bit 、17 lily 、40 sunny
我们可以利用哈希算法根据id将学生姓名存入,再根据id检索。
学生ID相当于KEY ,名字相当于VALUE
代码如下:
package com.algorithm.hash;
public class hash {
//哈希函数
public static int Hash(int key){
return key%17+3;
}
public static void main(String[] args) {
String[] stu = new String[20];
//根据哈希函数,将学生姓名存入数组。
stu[Hash(5)] = "tom";
stu[Hash(8)] = "jane";
stu[Hash(12)] = "bit";
stu[Hash(17)] = "lily";
stu[Hash(20)] = "sunny";
System.out.println("学号为5的学生姓名:"+stu[Hash(5)]);
}
}
从上可以知道:哈希算法检索的时候效率非常高,直接就可以找到需要的值。
看下面的题目:
有两个集合,
{ 2, 4, 5, 8, 65, 81 };
{ 8, 5, 45, 57, 89, 6, 4, 65, 1, 5, 2 };
如何找到相同的元素
第一种方法。将一个集合的每一个元素拿来到到另一个的集合中查找。
第二种方法。将较大的集合排序后,把较小的集合中的每个元素拿来到较大的集合中查找。可以用二分查找
第三种方法。采用哈希算法。将一个集合中的值经过哈希运算后,放入数组。第二个集合的元素利用哈希算法查找是否在数组中存在。代码如下:
package com.algorithm.hash;
public class hash {
//哈希函数
public static int Hash(int key){
return key%17+3;
}
public static void main(String[] args) {
int[] M = new int[] { 2, 4, 5, 8, 65, 81 };
int[] N = new int[] { 8, 5, 45, 57, 89, 6, 4, 65, 1, 5, 2 };
int[] hashtable= new int [20];
for (int i = 0; i < M.length; i++) {
int key = Hash(M[i]);
hashtable[key] = M[i];
}
for (int i = 0; i < N.length; i++) {
int key = Hash(N[i]);
if(hashtable[key] == N[i]){
System.out.println(N[i]);
}
}
}
}
有上面的代码就可以看出哈希算法在检索方面的优势。
分享到:
相关推荐
**感知哈希算法详解与Matlab实现** 感知哈希(Perceptual Hashing,简称pHash)是一种图像识别技术,用于判断两张图片是否相似。它通过模拟人类视觉系统的感知特性,将图片转换成一个简短的哈希值,进而进行比较。...
本文将深入探讨如何利用Python编程语言和哈希算法来有效地实现图像去重。 首先,我们要理解哈希算法的基本原理。哈希(Hash)算法是一种将任意长度的输入(也叫做预映射)通过一个算法,变换成固定长度的输出,这个...
哈希算法,也称为散列函数,是一种将任意长度的数据转化为固定长度输出的函数。在信息安全、数据验证和数字签名等领域扮演着重要角色。本文主要关注的是如何在8位单片机上实现SHA1哈希算法,这是一种广泛使用的哈希...
### 暴雪哈希算法源码解析与应用 #### 一、暴雪哈希算法简介 暴雪娱乐(Blizzard Entertainment)是一家知名的电子游戏开发公司,其在游戏开发领域有着丰富的经验和深厚的技术积累。其中,一个被广泛讨论且具有较...
哈希算法,又称散列函数或哈希函数,是信息技术领域中的一种重要工具,尤其在数据完整性检查、信息安全、数据库索引以及密码学等多个方面有着广泛的应用。在本压缩包中,你可能会找到多种常见的哈希算法的代码实现,...
尽管哈希算法有很多种,如MD5、SHA-1等,但SHA-1由于其良好的安全性和可靠性,成为了非常重要的哈希算法之一。 数字签名是电子商务活动中不可或缺的技术,它允许用户通过使用密码学原理来验证信息的来源和完整性。...
哈希算法,也被称为散列函数,是一种在信息安全领域中广泛应用的技术。它们的主要作用是将任意长度的输入(也称为预映射或消息)转换为固定长度的输出,这个输出通常是一个二进制数字串,被称为哈希值。在本文中,...
其核心是通过哈希算法来创建图像的数字指纹,以便快速比较和识别图像的相似性。 感知哈希算法(Perceptual Hash algorithm)是实现相似图搜索的一种有效方法。它的设计灵感来源于人类视觉系统对图像的感知,即在...
哈希算法,也称为散列算法,是一种在计算机科学中广泛使用的数据结构和算法,用于高效地存储和检索数据。在C语言环境下,哈希算法的实现通常涉及到自定义的数据结构和函数,以便将任意长度的输入(键或字符串)转化...
在本文中,我们将深入探讨如何使用OpenCvSharp库,结合感知哈希算法与图像拼接技术,来实现图片的相似度对比与全景图像生成。首先,我们需要了解OpenCV和OpenCvSharp这两个核心工具。 **OpenCV** 是一个开源的...
针对分布式存储系统中如何实现数据在物理存储上的均匀分布和高效定位的问题,对多种哈希算法展开研究,提出了衡量分布式存储系统哈希算法优劣的标准;从散列分布性、哈希冲突和计算效率等多个维度对这些哈希算法进行...
在分布式存储系统中,哈希算法扮演着至关重要的角色,它能够将数据均匀地分布在不同的存储节点上,同时还能够高效地定位数据,从而提高系统的性能。 哈希算法的基本原理是将输入数据(通常是字符串或其他数据类型)...
感知哈希算法是一种在图像处理领域中用于比较和识别图像的技术。它的主要目的是将图像转换成一种紧凑且可比较的数字“指纹”,这样就可以高效地判断两张图片是否相似或相同。这种技术在诸如搜索引擎的图片搜索功能、...
哈希算法,也被称为散列函数,是一种在计算机科学中广泛使用的数据结构和算法。它通过将任意长度的输入(也称为预映射)转换为固定长度的输出,这个输出通常是一个数字序列,称为哈希值。哈希算法在很多领域都有应用...
弱哈希算法签名的SSL证书(CVE-2004-2761)。 远程服务使用SSL证书链,该证书链已使用加密弱哈希算法(例如MD2、MD4、MD5或SHA1)签名。这些签名算法很容易受到碰撞攻击。攻击者可以利用这一点生成另一个具有相同数字...
哈希算法,也被称为散列函数,是一种在计算领域中广泛应用的数据处理技术。它通过将任意长度的输入(也称为预映射或消息)转换为固定长度的输出,这个输出通常是一个二进制数字,也被称为哈希值或散列码。哈希算法的...
一致性哈希算法最初由麻省理工学院的K等人提出,并被广泛应用于分布式系统中,以解决节点动态变化时数据一致性问题。其核心思想是通过引入哈希环,将数据对象均匀分布在哈希环上的不同节点中,以此降低节点变更对...
delphi下面开发的国产哈希算法SM3可以直接调用接口 里面的代码注释写的很明白 我自己做项目测试了可以使用 没得问题
本文将深入探讨一个基于C++的项目——"PixSearch(相似图片搜索)",该项目利用三种哈希算法:均值哈希(aHash)、差异哈希(dHash)和感知哈希(pHash),并通过汉明距离计算来识别并搜索指定文件夹内的相似图片。...
哈希算法 Hash 哈希算法 Hash 是一种常用的数据加密技术,用于将任意长度的数据转换为固定长度的哈希值。哈希算法 Hash 的设计目的是为了实现数据的加密和身份验证。下面我们将对哈希算法 Hash 进行详细的介绍和...