哈希表什么是哈希表哈希函数的构造方法处理冲突的方法课堂练习哈希表的查找哈希表的查找分析小结和作业竹么是哈希表例1:有一批考试成绩,统计各分数段的人数。A[0]A[]A[2]A[3]A[4]A[5]A[6]A[7]A[8]A[9]A[10对成绩Grade,执行:degrade/10]++竹么是哈希表v]2:Ord(Char=asc(char)-asc(a)+18(H01(A)345(E94(D19(S)22(V)018(R)19更ADHASXHAV9E(HG④HERHERE竹么是哈希表例3:为每年招收的1000名新生建立一张查找表,其关键字为学号,其值的范围为xx000~xx999(前两位为年份)。将1000个学生的信息存放在数组A[0]—A[999中number(substring(学号,3,3))竹么是哈希表查找表:使用数组存放n个关键字,数组的下标0→n-1建立查找表:给定关键字key→计算f〔key)→数组下标查找时:给定关键字key→计算f(key)→数组下标竹么是哈希表例4:统计学生成绩各分数段的人数Hash函数:f(grade)=grade/10建立查找表:给定grade→计算f(grade)→数组下标查找时:给定grade→计算f(grade)→数组下标竹么是哈希表例5:对于如下9个关键字(Zhao,Qian,Sun,Li,Wu,Chen,Han,Ye,Dei]设哈希函数f(key)=L(Ord(第一个字母)-0rd(A')+1)/2」什么是哈希衰ABCDEFGHIJKLM母序号字母序29PQRSTUVWXYZ序号012345678910111213ChenDeiHaOianSunWuYezhao问题:若添加关键字Zhou,怎么办?竹么是哈希表由此可见,1)哈希(Hash)函数是一个映象,即:将关键字的集合映射到某个地址集合上,它的设置很灵活,只要这个地址集合的大小不超出允许范围即可;2)对不同的关键字可能得到同一哈希地址,即:key1≠key2,而f(key1)=f(key2),因此,很容易生“冲突”现象;竹么是哈希表3)很难找到一个不产生冲突的哈希函数。一般情况下,只能选择恰当的哈希函数,使冲突尽可能少地产生。因此,在构造这种特殊的“查找表”时,除了需要选择一个“好”(尽可能少产生冲突)的哈希函数之外;还需要找到一种“处理冲突”的方法
数据结构-哈希表 来自淘豆网m.daumloan.com转载请标明出处.