例2:有数据元素序列(14,23,39,9,25,11),若规定 每个元素k的存储地址H(k)=k,请画出存储结构图。 H(k)称为散列函数 解:根据散列函数H(k)=k,可知元素14应当存入地址 为14的单元,元素23应当存入地址为23的单元,., 对应散列存储表(哈希表)如下: 地址.9 .11 .14 .232425 39 内容 14 23 25 39 讨论:如何进行散列查找? 根据存储时用到的散列函数H(k)表达式,迅即可查到结果! 例如,查找key=9,则访问H(9)=9号地址,若内容为9则成功 若查不到,应当设法返回一个特殊值,例如空指针或空记录。 明显缺点:空间效率低 如何解决?
11 例2 : 有数据元素序列(14,23,39,9,25,11),若规定 每个元素k的存储地址H(k)=k,请画出存储结构图。 解:根据散列函数H(k)=k ,可知元素14应当存入地址 为14的单元,元素23应当存入地址为23的单元,., 对应散列存储表(哈希表)如下: 讨论:如何进行散列查找? 根据存储时用到的散列函数H(k)表达式,迅即可查到结果! 例如,查找key=9,则访问H(9)=9号地址,若内容为9则成功; 若查不到,应当设法返回一个特殊值,例如空指针或空记录。 地址 . 9 . 11 . 14 . 23 24 25 . 39 . 内容 9 11 14 23 25 39 明显缺点:空间效率低 如何解决? H(k)称为散列函数
Hash查找法 若千术语 哈希方法 选取某个函数,依该函数按关键字计算元素的存储位置 (杂凑法) 并按此存放;查找时也由同一个函数对给定值k计算地址 将k与地址中内容进行比较,确定查找是否成功。 哈希函数 哈希方法中使用的转换函数称为哈希函数(杂 (杂凑函数) 凑函数) 哈希表 按上述思想构造的表称为哈希表(杂凑表) (杂凑表) 冲突 通常关键码的集合比哈希地址集合大得多,因而经 过哈希函数变换后,可能将不同的关键码映射到同 一个哈希地址上,这种现象称为冲突
12 选取某个函数,依该函数按关键字计算元素的存储位置 并按此存放;查找时也由同一个函数对给定值k计算地址, 将k与地址中内容进行比较,确定查找是否成功。 通常关键码的集合比哈希地址集合大得多,因而经 过哈希函数变换后,可能将不同的关键码映射到同 一个哈希地址上,这种现象称为冲突。 Hash查找法 哈希方法 (杂凑法) 哈希函数 (杂凑函数) 哈希表 (杂凑表) 冲 突 哈希方法中使用的转换函数称为哈希函数(杂 凑函数) 按上述思想构造的表称为哈希表(杂凑表) 若干术语