【数据结构】哈希表 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 哈希表(hash table)是从一个集合A到另一个集合B的映射(mapping)。 映射是一种对应关系,而且集合A的某个元素只能对应集合B中的一个元素。但反过来,集合B中的一个元素...

[读书笔记]哈希表[数据结构(C语言版)严慧敏]

本篇文章主要介绍哈希表的一些术语介绍和构造哈希函数的方法和处理冲突的方法以及查找方法。百度百科解释   1.哈希表:根据设定的哈希函数H(key)和处理冲突的方法把一组关键字映像到一个有限的连续地址集...

数据结构复习一:哈希表的总结

昨天复习了一下哈希表,今天来总结一下。哈希表概述哈希表,是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录。由于可以根据哈希函数直接得...

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

数据结构HASH总结一:理论学习篇  数据结构HASH总结二:程序学习篇 数据结构HASH总结三:实践基础篇 数据结构HASH总结四:程序高级篇 数据结构HASH总结五:Ngi...

重温数据结构:哈希 哈希函数 哈希表

点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 在学习 HashMap 前,我们先来温习下 Hash(哈希) 的概念。 什么是 HashHash(哈希),又称“散列”...

数据结构-哈希表

说明:本文分为三部分内容,第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。 第一部分:Top K 算法详解 问...

数据结构HASH总结二:程序学习篇

转载请注明出处http://blog.csdn.net/yankai0219/article/details/8185816 在理论学习篇中,我提到要学会Hash表初始化、插入元素、查找元素三大操作...

数据结构HASH总结四:程序高级篇

转载请注明出处http://blog.csdn.net/yankai0219/article/details/8185872 问题一: 百度面试题:(第一部分:Top K 算法详解)  ...

数据结构HASH总结五:Nginx中的HASH(version 0.1)

我希望我可以写出一系列文章,每一章都是先讲数据结构,然后再讲这种类型的数据结构是如何在Nginx中实现的。但是由于个人对Nginx的了解,有所欠缺,因此到了Nginx中的数据结构时,就不能很好的举例说...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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