散列表(哈希)
散列表 ( 哈希 ) 简介 简述 散列函数 冲突 开放地址法 链接法(也称链地址法) 链接法对比与开放地址法的优缺点 名词解释 我们来讲述散列表。 散列表是一种数据结构,它具有以下性质: 应用广泛 查找快速 等 举个例子。 你在超市工作,一位顾客来购买商品,你家超市刚刚好没有自动销售机,你得亲自去查找该商品的价格。如果我们是这样的话,那么顾客每买一个商品,都要找一下该商品并且知道它的价格。那么我们非常花费时间。如果我们能够找到这样一个人:能够记住所有商品的价格的人。那么我们在帮顾客结账的时候将会非常快速。 即使你是用一个小本本把你商店的东西都记上了,并且是按照一定的顺序记号的。即使使用二分查找,那么我们也会花费一定的时间。想必此时顾客已经不耐烦了。他们可能会说:“怎么这么久!!!”,然后你的商店可能会产生很多很多的怨气...... 我们从数据结构的方面去看这个问题,那么所有的商品就有了这样的一个特性: 商品的key 以及 商品的 卫星数据 。 如果我们按照一个特殊的函数去把相对应的 KEY 值转换成另一个东西,并且记录在小本子上,我们只需直接翻到这个本子相对应的部分,就可以找到了该商品的价格了,以及还有其他的信息。 ---->BACK<---- 散列函数 那么我们的问题来了,我们该怎样创建这个数据类型呢?首先了解一下,散列函数 散列函数是“将输入映射到数字”