散列(哈希表)
1.基本思想:将关键字 (数据项)被映射到从0到Tablesize-1这个范围中的某个数,并且被放到适当的单元中。其中这个映射就叫做散列函数。
0
≤
H(Ki)
≤
Tablesize−1
如图:
2.冲突:将两个不同的关键字映射到同一表的位置。如图:
3.构造哈希函数的两个标准:(1)简单并且能快速计算;(2)能在地址中获取键的均部分。
4.构造哈希函数的几种常见方法:
(1)平均取中法:具体做法是先通过关键字的平方值扩大相近数的差别,然后根据表长度取中间的几位数作为哈希值。
例如:将一组关键字(0100,0110,1010,1001,0111)平方后得(0010000,0012100,1020100,1002001,0012321)若取表长为1000,则可取中间的三位数作为散列地址集:(100121,201,020,123)。
(2)除余法:用关键字除以一个不大于哈希表长度