- 1
- 0
- 约3.36千字
- 约 21页
- 2019-01-07 发布于广东
- 举报
数据结构散列Hashing
散列 (Hashing) 散列方法在表项的存储位置与它的关键字之间建立一个确定的对应函数关系Hash( ),使每个关键字与结构中一个唯一存储位置相对应: Address = Hash ( Rec.key ) 在查找时,首先对表项的关键字进行函数计算,把函数值当做表项的存储位置,在结构中按此位置取表项比较。若关键字相等,则查找成功。在存放表项时,依相同函数计算存储位置,并按此位置存放。 哈希函数的构造方法 1. 直接定址法 此类函数直接取关键字或关键字的某个线性函数值作为散列地址: Hash ( key ) = a * key + b { a, b为常数 } 这类散列函数是一对一的映射,一般不会产生冲突。 但是,它要求散列地址空间的大小与关键字集合的 大小相同。 2. 数字分析法 设有n个d位数,每一位可能有r种不同的符号。这 r 种不同的符号在各位上出现的频率不一定相同,可能在某些位上分布均匀些;在某些位上分布不均匀,只有某几种符号经常出现。可根据散列表的大小,选取其中各种符号分布均匀的若干位作为散列地址。 3. 平方取中法 此方法在词典处理中使用十分广泛。它先计算构成关键字 的标识符的内码的平方,然后按照散列表的大小取中间 的若干位作为散列地址。 设标识符可以用一个计算机字长的内码表示。因为内 码平方数的中间几位一般是由标识
原创力文档

文档评论(0)