哈希表的构建哈希函数hashfunction.PPT

哈希表的构建哈希函数hashfunction

哈希表的构建 哈希函数(hash function),记录的关键字值与记录的存储位置的对应关系H称为哈希函数,H(k)的结果被称为哈希地址 哈希表(hash table),是根据哈希函数建立的表,以记录的关键字值为自变量,根据哈希函数,计算出对应的哈希地址,并在此存储该记录的内容 哈希冲突与解决 冲突(collision),不同的关键字值其哈希函数计算的哈希地址相同,具有相同函数值的关键字值称为同义词(synonym) 本例中处理同义词冲突的方法是拉链法 ,当发生冲突时,在冲突位置的二维数组行上寻找存放记录的空闲单元 24点算法的不可计算案例哈希 设定哈希表的长度为149,H关系为: H(key)=key mod 149 + 1 Key的获取原则为: 所有10牌面模除7余3,再参与其他牌面的计算,例如,10 10 10 10等同3 3 3 3 去掉10以后的所有牌面数:key=d1*1000+d2*100+d3*10+d4 H(Key)=3333 mod 149+1=56 计算所得的哈希表(局部) 不可计算牌组直接转换成为字符串; 按哈希规则寻址保存在文件记录中 构建哈希表的一些要点 可以采用149行,N列的二数组保存哈希表(也就是将同义词的牌组,按计算顺序在一行中排放) 在运行后,发现最大的冲突数为3,因此该算法的实际哈希表为149*3=447个数据单元 在本例构建的哈希表(

文档评论(0)

1亿VIP精品文档

相关文档