哈希表的思想笔记

Hash table 也叫散列表

    是根据键(key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这个映射函数称为散列函数,存放记录的数组称为散列表

记录的存储位置=f(k)

这里的f称为散列函数,有称为哈希,采用散列技术将记录储存在一块连续的存储空间中,这块连续的存储空间称为散列表或者哈希表

哈希表就是把key通过一个固定的算法函数(哈希函数)转换成一个整型数字,然后将该数字对数组长度进行取余,取余结果就当做数组的下标,将value存储在以该数字为下标的数组空间中。通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的控件通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确认输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数

数组的特点:寻址容易,插入和删除困难

链表的特点:寻址困难,插入和删除容易

hash就是找到一种数据内容和数据存放地址之间的映射关系。

你可能感兴趣的:(哈希表的思想笔记)