也就是说,对于完美散列,其中的每一个值,都可以唯一地映射到散列表中的一个位置,既无空余,亦无重复。从映射角度来看,完美散列是一个单射,同时也是一个满射。Bitmap就是完美散列的一个例子。...可以看出,完美散列实际中并不常见,在大多数的情形下,关键码的取值是远远大于词条的个数的,设关键码的取值为 [ 0 , R ) [0, R) [0,R), 词条的个数为 N N N,则 R > > N R...设散列表的大小为 M M M,此时,从定义域 [ 0 , R ) [0, R) [0,R)到值域 [ 0 , M ) [0, M) [0,M)的映射不可能是单射,即不可避免地会出现不同的关键码映射到散列表中的同一个位置...散列函数的设计
散列函数的设计方案?什么是好的散列函数?
前面提到,从词条空间到地址空间的映射,即散列函数,绝对不可能是单射,冲突是一定不可能避免的,但是好的散列函数应该保证尽可能地少出现冲突。...再散列法(double hashing)
顾名思义,设置一个二级散列函数来确定试探位置,即
[ h a s h ( k e y ) + j × h a s h 2 ( k e y ) ] m