散列表
也叫哈希表,主要知识点为散列函数,冲突解决方案。
-
散列函数
散列函数是这样的函数,无论你给它什么数据,它都会还给你一个数字(哈希值);散列函数必须满足的要求:
一致性,散列函数每次输入的值,对应其唯一的返回值,即每种输入值对应相同输出值;
唯一性,每种输入值,理论上要对应不同的输出值; -
冲突
定义为多个输入值散列函数返回同一输出值,这种就叫冲突,冲突的解决方案有很多,其中之一的PHP数组解决方案就是在同一点设置单向链表,解决冲突。
要避免冲突,需要有:
1 较低的填装因子(散列表包含的元素数/位置总数)
2 良好的散列函数 -
性能
散列表的性能主要取决于散列函数的性能,优秀的散列函数让数组中的值,均匀分布,避免单个位置冲突多个值。
网友评论