数据结构(一):Hash(散列)


【数据结构与算法】初入数据结构的哈希表(Hash Table)


Hash,散列,哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的特征(指纹)。

哈希表(Hash Table)又称为散列表。 哈希表是一种可以根据以key-value键值对形式存储数据的数据结构,可以通过关键字Key直接找到数据Value的存储位置,而不需要经过任何的遍历和比较。

在实现编程中,常常面临着两个问题:存储和查询
存储和查询的效率往往决定了整个程序的效率。而我们常见存储数据的数据结构比如线性表,树等。数据在结构中的位置都是不明确的,当我们在这些数据结构中要查询一个数据,都避免不了的执行查询算法,去遍历数据结构,拿关键字和结构中的数据一一比较,从而得到想要的数据。整个查询的效率就决定了程序的执行效率,查询效率又依赖查找过程中所进行的比较次数。所以我们就希望能不能不通过比较就能获得我们想要的结果呢?

答案是有的,不经过任何比较,一次存储便能取得所查记录。但这就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f。使得每个关键字和结构中一个唯一的存储位置相对应。这个关系就是我们所说的哈希函数f(x)。在这个思想上建立起来的表就称为散列表(哈希表)

— The end —

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值