算法图解--散列表

散列表

也叫哈希表,主要知识点为散列函数,冲突解决方案。

  • 散列函数
    散列函数是这样的函数,无论你给它什么数据,它都会还给你一个数字(哈希值);散列函数必须满足的要求:
    一致性,散列函数每次输入的值,对应其唯一的返回值,即每种输入值对应相同输出值;
    唯一性,每种输入值,理论上要对应不同的输出值;

  • 冲突
    定义为多个输入值散列函数返回同一输出值,这种就叫冲突,冲突的解决方案有很多,其中之一的PHP数组解决方案就是在同一点设置单向链表,解决冲突。
    要避免冲突,需要有:
    1 较低的填装因子(散列表包含的元素数/位置总数)
    2 良好的散列函数

  • 性能

散列表的性能主要取决于散列函数的性能,优秀的散列函数让数组中的值,均匀分布,避免单个位置冲突多个值。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器