散列表
散列表就是快速查找数据的一种数据结构。
散列函数
散列函数就是无论给什么数据,都会返回一个准确的数据。
散列函数的要求:
- 必须一致,例如,首先输入的一个数返回的是4,那么第二次输入这个数返回的也是4.
- 输入不同的数字返回不同的数据
应用案例:
查找:
- 电话簿:输入姓名返回电话
- DNS解析:IP地址和网址映射
防止重复:
假设每人只能一票。防止有人重复,一个一个找比较麻烦,可以使用散列表‘
缓存数据,以免服务器处理生成他们
冲突,如果出现两个数据指向一种数据,这种情况就是冲突。所以我们要减少冲突
性能,在一般情况下散列表的速度确实很快。但是在最糟的情况下就会很慢。
如图
所以需要存在两个条件
- 较低的填装因子
- 较好的散列函数
填装因子:计算 填装因子的元素数/位置总数
填装因子越低发生的冲突越小