`
zyongsheng83
  • 浏览: 41227 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

哈希表概念

阅读更多

一般的线性表、树中,记录在结构中的相对位置是随机的即和记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上,查找的效率与比较次数密切相关。理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。因而查找时,只需根据这个对应关系f找到给定值K的像f(K)。若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,由此不需要进行比较便可直接取得所查记录。在此,称这个对应关系f为哈希函数,按这个思想建立的表为哈希表(又称为杂凑法或散列法)。

哈希表不可避免冲突(collision)现象:对不同的关键字可能得到同一哈希地址 即key1≠key2,而f(key1)=f(key2)。具有相同函数值的关键字对该哈希函数来说称为同义词(synonym)。 因此,在建造哈希表时不仅要设定一个好的哈希函数,而且要设定一种处理冲突的方法。可如下描述哈希表:根据设定的哈希函数H(key)和所选中的处理冲突的方法,将一组关键字映象到一个有限的、地址连续的地址集(区间)上并以关键字在地址集中的“象”作为相应记录在表中的存储位置,这种表被称为哈希表。

对于动态查找表而言,1) 表长不确定;2)在设计查找表时,只知道关键字所属范围,而不知道确切的关键字。因此,一般情况需建立一个函数关系,以f(key)作为关键字为key的录在表中的位置,通常称这个函数f(key)为哈希函数。(注意:这个函数并不一定是数学函数)

哈希函数是一个映象,即:将关键字的集合映射到某个地址集合上,它的设置很灵活,只要这个地址集合的大小不超出允许范围即可。

现实中哈希函数是需要构造的,并且构造的好才能使用的好。

用途:加密,解决冲突问题。。。。
用途很广,比特精灵中就使用了哈希函数,你可 以自己看看。
具体可以学习一下数据结构和算法的书。

 
分享到:
评论

相关推荐

    哈希表 哈希表的概念作用及意义,哈希表的构造方法

    哈希表的概念作用及意义,哈希表的构造方法

    哈希表在电信公用电话客户流失分析中的应用

    哈希表是数据结构中的重要概念之一。由于它在记录查找时一次存取便能得到所查记录,所以在经常要进行的大容量数据库表的查询时,显示出相当高的效率。本文首先介绍了哈希表的有关知识,然后介绍了电信公用电话客户...

    实验5----哈希表实验报告.doc

    哈希表 一、实验目的 学会哈希函数的构造方法,处理冲突的机制以及哈希表的查找。 二、实验内容 说明以下概念 1、哈希函数 在一般情况下,需在关键字与记录在表中的存储位置之间建立一个函数关系,以 f(key) 作为...

    哈希表相关概念、hash函数、hash冲突解决方案、代码示例

    哈希表 相关概念、hash函数、hash冲突解决方案、代码示例

    一种基于哈希链表的高效概念漂移连续属性处理算法

    PDF文档,介绍一种基于哈希链表的高效概念漂移连续属性处理算法。

    哈希表:用于Node.js的快速,可靠的布谷鸟哈希表

    哈希表用于Node.js的快速,可靠的。安装npm install @ronomon/hash-table动机为什么不使用香草Javascript对象(或Set或Map)作为哈希表? 普通对象没有接口可以预先预先分配表容量,并且Set或Map构造函数仅接受可...

    哈希表搜索算法介绍和java代码实现

    介绍哈希表搜索算法的概念、特点、优缺点、适用场景和java代码简单实现。

    CS冲刺挑战哈希表

    冲刺挑战:哈希表 请仔细阅读这些说明。 在开始本次Sprint挑战赛之前,请确切了解预期的结果。 通过这项挑战,您可以练习从过去的冲刺中学到的概念和技术,并将其应用到具体项目中。 此Sprint探索了哈希表。 在此...

    hash概念及其重要题型.pptx

    H(key) 和处理冲突的方法将一组关键字映象到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“象”作为记录在表中的存储位置,这种表便称为哈希表,这一映象过程称为哈希造表或散列,所得存储位置称为...

    hash_table:只需对哈希表进行编码即可掌握概念

    只需对哈希表进行编码即可掌握概念 请参阅 /!\免责声明:此重做只是为了娱乐和个人成长,因此我使用了std :: list(在此主题中被禁止)。 目标是创建一种有效的键值处理算法。 我是在42 HotRace挑战之后执行此操作...

    哈希技术在广东电信公话200话单处理中的应用

    而哈希表是数据结构中的重要概念之一,由于它在记录查找时一次存取便能得到所查记录,所以在电信领域中对海量数据进行处理时,显示出相当高的效率。本文首先介绍了哈希表的有关知识,然后介绍了广东电信公用电话200...

    open_addressing_hash_table:在 C++ 上打开寻址哈希表

    在 C++ 上打开寻址哈希表 希望在这里看到功能齐全的 C++ 容器在 C++ 上实现快速和紧凑的开放寻址哈希表。 概念证明(参见 benchmark.cpp)表明,这种映射可以比std::unordered_map快 3 倍。 API 应该很像std::...

    第8章 查找.ppt

    基本概念 线性表的查找 树表查找 哈希表查找基本概念 线性表的查找 树表查找 哈希表查找 基本概念 线性表的查找 树表查找 哈希表查找

    手动实现golang中的map源码

    首先,我们将介绍哈希表的基本概念和原理,包括哈希函数、冲突解决等知识点。接着,我们将逐步实现一个简单的哈希表,包括插入、删除、查找等操作。在这个过程中,你将深入了解哈希表的内部结构和工作原理,并掌握...

    算法+排序、查找、哈希表、图论、动态规划、贪心算法、分治算法、回溯算法 +高级算法+数据处理、计算机科学、编程、软件开发

    介绍算法的基本概念、分类、常用算法及其应用,适合对算法感兴趣的读者阅读,本书适合对算法感兴趣的读者阅读,包括计算机专业学生、软件开发人员、数据分析人员等。 本书可以作为计算机专业学生的参考书,也可以...

    Java集合框架Set接口.pdf

    由于哈希表的实现机制,HashSet的添加、删除和查找操作都具有很好的性能,时间复杂度为O(1)。 LinkedHashSet是基于链表和哈希表实现的Set集合,它保证集合中元素的插入顺序。在插入元素时,它既会将元素插入到链表的...

    几个比较著名的哈希算法

    几个比较著名的哈希算法,还有哈希算法的概念以及如何优化哈希值的分布,在日常软件开发中十分有用

    数据结构实验七查找.doc

    算法实现代码 2、哈希表的构造与查找 /* 采用开放地址法构造哈希表*/ #include<stdio.h> #include<malloc.h> #define MAXSIZE 25 #define P 13 #define OK 1 #define ERROR 0 #define DUPLICATE -1 #define TRUE 1 ...

    冲刺挑战-哈希BC

    Sprint挑战:哈希表和区块链 这项挑战使您可以练习过去一周学到的概念和技术,并将其应用到具体项目中。 在本Sprint中,我们了解了哈希表... 您的工作反映了您对Python的熟练程度以及对与哈希表和区块链相关的概念和技

Global site tag (gtag.js) - Google Analytics