哈希游戏- 哈希游戏平台- 哈希游戏官方网站
哈希表的基本思想:“一次”查找成功。关键字集合映射函数H地址空间H(key)ASL的T(n)=O(1)。通常设定一个一维数组空间存储记录集合,则H(key)指示数组中的下标。称这个一维数组为哈希(Hash)表或散列表。称映射函数H为哈希函数。H(key)为哈希地址9.3.1什么是哈希表9.3哈希表1哈希表的基本思想:关键字集合映射函数H地址空间H(key一、直接地址法取关键字或关键字的某个线性函数值为哈希地址即:H(key)=key或:H(key)=a*key+b其中,a,b为常数。常用的构造哈希(散列)函数的方法:假设关键字集合中的每个关键字都是由s位数字组成(u1,u2,…,us),分析关键字集中的全体,并从中提取分布均匀的若干位或它们的组合作为地址。二、数字分析法2一、直接地址法常用的构造哈希(散列)函数的方法:假设四、折叠法将关键字分割成位数相同的几部分,然后将这几部分叠加,舍去进位作为哈希地址。移位叠加:将分割之后的每一部分的最低位对齐,然后相加。间界叠加:从一端向令一端沿分割界来回折叠,然后相加。三、平方取中法将k平方后的中间几位取为哈希地址。位数由表长决定3四、折叠法三、平方取中法3五、除留余数法当关键字k为整数时,用关键字除以一个整数p所得余数作为哈希的地址。
ANDALSO2BITEBITTERBROOM┇5EACHEGGS┇8HASH┇2613例2:有一组关键字{BITE,EACH,BITTER,四、建立一个公共溢出区设向量hashtable[m]为基本表。另设向量overtable[V]为溢出表。所有与基本表中关键字为同义词的记录都填入溢出表例:关键字表(a,d,e,f,d1,d2,f1,g),表长m=11,H(key)=i1%11;i1为首字母在字母表中的位置。0基本表ad0溢出表efd1d2f1g14四、建立一个公共溢出区例:关键字表(a,d,e,f,d19.3.4哈希表的查找及分析一.哈希表的查找查找过程和建立哈希表的过程基本一致。(1)计算哈希地址。(2)相应地址上没有记录,则查找不成功。(3)相应地址上有记录,则比较关键字,①若和给定值相等,则查找成功。②不相等,则根据造表时设定的处理冲突的方法找“下一地址”,直到哈希表中某个位置为空或者表中的关键字与给定值相同为止。159.3.4哈希表的查找及分析一.哈希表的查找15inthashsrch(hashtable
hash(key)=5*(i-1)+L其中,i为第一个字母在字母表中的序号,L为关键字的长度。(2)设表长:由=记录长度n/表长m,表长m=n/≥(100*5)/4=125取表长m=13319(3)关键字分析:开头a-z,最长6位。(2)设表长:由9.3、9.9、9.13、9.14、9.19、9.21作业209.3、9.9、9.13、9.14、9.19、哈希表的基本思想:“一次”查找成功。关键字集合映射函数H地址空间H(key)ASL的T(n)=O(1)。通常设定一个一维数组空间存储记录集合,则H(key)指示数组中的下标。称这个一维数组为哈希(Hash)表或散列表。称映射函数H为哈希函数。H(key)为哈希地址9.3.1什么是哈希表9.3哈希表21哈希表的基本思想:关键字集合映射函数H地址空间H(key一、直接地址法取关键字或关键字的某个线性函数值为哈希地址即:H(key)=key或:H(key)=a*key+b其中,a,b为常数。常用的构造哈希(散列)函数的方法:假设关键字集合中的每个关键字都是由s位数字组成(u1,u2,…,us),分析关键字集中的全体,并从中提取分布均匀的若干位或它们的组合作为地址。二、数字分析法22一、直接地址法常用的构造哈希(散列)函数的方法:假设四、折叠法将关键字分割成位数相同的几部分,然后将这几部分叠加,舍去进位作为哈希地址。移位叠加:将分割之后的每一部分的最低位对齐,然后相加。间界叠加:从一端向令一端沿分割界来回折叠,然后相加。三、平方取中法将k平方后的中间几位取为哈希地址。位数由表长决定23四、折叠法三、平方取中法3五、除留余数法当关键字k为整数时,用关键字除以一个整数p所得余数作为哈希的地址。
ANDALSO2BITEBITTERBROOM┇5EACHEGGS┇8HASH┇2633例2:有一组关键字{BITE,EACH,BITTER,四、建立一个公共溢出区设向量hashtable[m]为基本表。另设向量overtable[V]为溢出表。所有与基本表中关键字为同义词的记录都填入溢出表例:关键字表(a,d,e,f,d1,d2,f1,g),表长m=11,H(key)=i1%11;i1为首字母在字母表中的位置。0基本表ad0溢出表efd1d2f1g34四、建立一个公共溢出区例:关键字表(a,d,e,f,d19.3.4哈希表的查找及分析一.哈希表的查找查找过程和建立哈希表的过程基本一致。(1)计算哈希地址。(2)相应地址上没有记录,则查找不成功。(3)相应地址上有记录,则比较关键字,①若和给定值相等,则查找成功。②不相等,则根据造表时设定的处理冲突的方法找“下一地址”,直到哈希表中某个位置为空或者表中的关键字与给定值相同为止。359.3.4哈希表的查找及分析一.哈希表的查找15inthashsrch(hashtable