【数据结构】哈希表 Hash Table

原创 2013年12月05日 17:23:22

1. Hash Table的定义

在线性表,树等数据结构中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需要进行一系列和关键字的比较。查找的效率依赖于查找过程中所进行的比较次数。

理想的情况是希望不经过任何比较,一次存取便能得到所查记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。因而在查找时,只要根据这个对应关系f找到给定值K的像f(K)。若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,由此,不需要进行比较便可以直接取得所查记录.这个对应关系f为哈希(Hash)函数.

哈希函数是一个映像,只要使得任何关键字由此所得的的哈希函数值都落在表长允许范围之内即可.

另外,对于不同的关键字可能得到同一个哈希地址,这种现象称为冲突.一般情况下,冲突只能尽可能地少,而不能完全避免.因此,在建立哈希表时不仅要设定一个好的哈希函数,而且要设定一种处理冲突的方法.

根据设定的哈希函数H(key)和处理冲突的方法将一组关键字映像到一个有限的连续的地址集(区间)上,并以关键字在地址集中的"像"作为记录在表中的存储位置,这种表便成为哈希表,这一映像过程成为散列,所得存储位置称为哈希地址或散列地址。


2. 哈希函数的构造方法


3. 处理冲突的方法

3.1. 链地址法

将关键字为同义词的记录存储在同一个线性链表中,



Hash Table的特点及引用

Hash Table是一种高效的数据结构,其高效主要体现在把数据的存储和查找的时间大大降低,几乎可以看成是常数时间,而代价是消耗较多的内存。

  • 统计值出现的次数/频率


数据结构—散列表(Hash table,也叫哈希表)

散列表(Hash table,也叫哈希表)是一种查找算法,与链表、树等算法不同的是,散列表算法在查找时不需要进行一系列和关键字(关键字是数据元素中某个数据项的值,用以标识一个数据元素)的比较操作。 ...
  • heyuchang666
  • heyuchang666
  • 2015年11月23日 16:12
  • 2161

哈希表(散列表)原理详解

哈希表(散列表)原理详解
  • duan19920101
  • duan19920101
  • 2016年06月03日 15:23
  • 55156

哈希表总结

哈希表的概念         哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找的...
  • chenhuajie123
  • chenhuajie123
  • 2013年07月01日 00:32
  • 32029

hash储存机制

hash存储机制 Hash存储机制 目录 1 HASH存储 1 1.1 HASH存储 1 1.2 集合和引用 1 2 HASHMAP 1 2.1 HASHMAP存储实现 1 ...
  • t0404
  • t0404
  • 2016年06月23日 22:00
  • 2082

HashMap的存储结构及原理

HashMap是由数组+链表组成;寻址容易,插入和删除困难。(存储单元数组Entry[],数组里面包含链表) 3、HashMap、HashTable和ConcurrentHashMap的线程安全问题 ...
  • hu948162999
  • hu948162999
  • 2014年12月24日 05:05
  • 5717

数据结构——线性表——散列存储结构——哈希表知识点总结

散列(hashing)是一种重要的存储方法,也是一种常见的查找方法。 基本思想:以结点的关键字k为自变量,通过一个确定的函数关系f,计算出对应的函数值,吧这个函数值解释为结点的存储地址,将结点存入...
  • misayaaaaa
  • misayaaaaa
  • 2017年05月14日 10:08
  • 1720

数据结构HASH总结一:理论学习篇

数据结构HASH总结一:理论学习篇  数据结构HASH总结二:程序学习篇 数据结构HASH总结三:实践基础篇 数据结构HASH总结四:程序高级篇 数据结构HASH总结五:Ngi...
  • yankai0219
  • yankai0219
  • 2012年11月15日 10:36
  • 8660

【数据结构与算法】哈希表

哈希表主要是构造一个映射函数,该函数以数据元素为自变量,函数值即为数据元素在内存中的存储位置。通常把这样的映射函数称为哈希函数h(x)。因此可以说,哈希表是通过哈希函数h(x)来确定数据元素x存放位置...
  • yigelangmandeshiren
  • yigelangmandeshiren
  • 2012年12月04日 18:50
  • 5864

数据结构例程——哈希表及其运算的实现

本文是[数据结构基础系列(8):查找]中第11课时[哈希表——散列结构]和第12课时[哈希表的运算]的例程。#include #define MaxSize 100 //定义最大哈希...
  • sxhelijian
  • sxhelijian
  • 2015年11月28日 16:24
  • 4038

数据结构基础-Hash Table详解

理解Hash 哈希表(hash table)是从一个集合A到另一个集合B的映射(mapping)。 映射是一种对应关系,而且集合A的某个元素只能对应集合B中的一个元素。但反过来,集合B中的一个元素...
  • liufei_learning
  • liufei_learning
  • 2014年02月15日 01:47
  • 12997
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【数据结构】哈希表 Hash Table
举报原因:
原因补充:

(最多只允许输入30个字)