数据结构-第9章查找浅析.ppt

例 30个地区的各民族人口统计表 编号 地区别 总人口 汉族 回族…... 1 北京 2 上海 …... …... 以编号作关键字, 构造哈希函数:H(key)=key H(1)=1 H(2)=2 以地区别作关键字,取地区 名称第一个拼音字母的序号 作哈希函数:H(Beijing)=2 H(Shanghai)=19 H(Shenyang)=19 从例子可见: 哈希函数只是一种映象,所以哈希函数的设定很灵活,只要使任何关键字的哈希函数值都落在表长允许的范围之内即可。 冲突:key1?key2,但H(key1)=H(key2)的现象 一般来说,只能尽量减少冲突而不能完全避免冲突,这是因为通常关键字集合比较大,其元素包括所有可能的关键字,而地址集合的元素仅为哈希表中的地址值,如上例中城市和地区的可能出现值不下几百几千而地址集合的大小只有26,所以哈希函数是一个压缩映象,就不可避免产生冲突。在定义哈希表时既要定义好哈希函数又要给出处理冲突的方法。 哈希函数构造的方法 直接定址法 数字分析法 平方取中法 折叠法 除留余数法 随机数法 哈希函数为关键字的线性函数 H(key) = key 或者 H(key) = a ? key

文档评论(0)

1亿VIP精品文档

相关文档