散列表

散列表也叫做字典(哈希),这个就熟悉了吧。它通过将字符串等映射到数组的索引中,实现了通过字符串一下子就查找到目标值O(1)。散列表有着数组,散列函数,通过散列函数将字符串转换成数组对应的索引,一个良好的散列函数会有较少的冲突(就是两个不同的字符串对应到了同一个索引),这时候会在该索引位置生成一个链表,如果链表(冲突)很长,说明这个散列函数不好。散列表的查找、删除、插入等操作都很快,就是填装因子大到一定程度时>0.7(数组的位置不够装了),需要重构散列表时比较耗时。

很典型的一个例子就是DNS的解析,每个域名都对应着一个ip,通过域名查找ip,若是不适用散列表,查找时间为O(n),全世界有多少个域名,想想就觉得可怕。

还有就是网站的缓存,通过域名来获取到对应的缓存页面。


首页 我的博客
粤ICP备17103704号