【信源编码 作业二】哈希表
来源:互联网 发布:百度一下淘宝网裤子 编辑:程序博客网 时间:2024/05/02 04:46
1. 哈希表的概述
哈希表(Hash table,也叫散列表)是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数被称为哈希函数,存放记录的数组被称为哈希表,记录的存储位置=f(关键字),这里的对应关系f被称为哈希函数,采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间被称为哈希表。
哈希表就是把key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。而当使用哈希表进行查询的时候,就再次使用哈希函数将key转换为对应的数组下标,并定位到该空间获取value,如此一来,就可以充分利用到数组的定位性能进行数据定位。
2. 哈希表的算法实现
哈希表的实现就是找到一种数据内容和数据存放地址之间的映射关系。数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。要想实现哈希表就要综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构。哈希表有多种不同的实现方法,最常用的一种方法是拉链法,我们可以理解为“链表的数组”,如下图所示:
左边是个数组,数组的每个成员包括一个指针,指向一个链表的头,当然这个链表可能为空,也可能元素很多。根据元素的一些特征把元素分配到不同的链表中去,也是根据这些特征,找到正确的链表,再从链表中找出这个元素。
元素特征转变为数组下标的方法就是散列法。散列法不止一种,包括直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法、平方散列法、斐波那契散列法等等,最常用的是除留余数法。该方法的公式为index = value % 16,它是针对正整数的,把余数作为索引,对一组数除以 16 得到索引。
- 【信源编码 作业二】哈希表
- 信源编码作业二
- 第一次信源编码作业
- 信源编码作业一
- 信源编码第一次作业
- 信源编码第一次作业
- 信源编码第二次作业
- 信源编码第二次作业
- 信源编码第二次作业
- 信源编码第三次作业
- 信源编码第二次作业
- 信源编码作业三
- 信源编码作业五
- 信源编码作业四
- 信源编码作业六
- 信源编码第五次作业
- 信源编码第四次作业
- 【信源编码 作业一】视频音频数据源
- #.JQuery代码片段
- Docker镜像中Dockerfile的制作或编写
- C.A.T.S:离线策略手游的精髓设计
- 降薪求职,愚蠢还是明智?
- MySQL存储过程
- 【信源编码 作业二】哈希表
- html中关于title href bgcolor的用法
- 深入Java虚拟机笔记(二):垃圾收集器与内存分配策略
- shell脚本 --- expect ssh scp 命令学习
- MySql中游标的定义与使用方式
- WIN10 安装 MySQL 5.7 .zip
- perl将字符串时间转换成 epoch time
- 工厂模式定义
- MATLAB入门教程