原理
桶bucket:直接存放或间接指向一个词条
桶数组bucket array / 散列表hash table,容量为M
N < M <<R
空间 = O(N+M) = O(N)
定址/杂凑/散列: 根据词条的key(未必可比较),直接确定散列表入口
什么样的散列函数hash()更好?
1)确定determinism:同一关键码总是被映射到同一地址
2)快速efficiency:expected-O(1)
3)满射surjection:尽可能充分地覆盖整个散列空间
4)均匀uniformity:关键码映射到散列表各位置的概率尽量接近,可有效避免聚集clustering现象