下载此文档

第七章哈希表.ppt


文档分类:医学/心理学 | 页数:约41页 举报非法文档有奖
1/41
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/41 下载此文档
文档列表 文档介绍
第6章内容回顾常见的排序算法有哪些其中那种算法的效率最高对大量的数据进行排序的化最好使用那种排序算法哈希表第七章预习检查哈希表的定义处理冲突的方法有那些本章目标了解什么是哈希表掌握如何构造哈希函数处理冲突的方式哈希表的查找及分析本章结构处理冲突的方法哈希表哈希函数的构造方法什么是哈希表7-1哈希表哈希表又称散列表。哈希表存储的基本思想是:以数据表中的每个记录的关键字k为自变量,通过一种函数H(k)计算出函数值。把这个值解释为一块连续存储空间(即数组空间)的单元地址(即下标),将该记录存储到这个单元中。在此称该函数H为哈希函数或散列函数。按这种方法建立的表称为哈希表或散列表。例如,要将关键字值序列(3,15,22,24),存储到编号为0到4的表长为5的哈希表中。计算存储地址的哈希函数可取除5的取余数算法H(k)=k%5。则构造好的哈希表如图所示。7-1哈希表7-1哈希表理想情况下,哈希函数在关键字和地址之间建立了一个一一对应关系,从而使得查找只需一次计算即可完成。由于关键字值的某种随机性,使得这种一一对应关系难以发现或构造。因而可能会出现不同的关键字对应一个存储地址。即k1≠k2,但H(k1)=H(k2),这种现象称为冲突。把这种具有不同关键字值而具有相同哈希地址的对象称“同义词”。在大多数情况下,冲突是不能完全避免的。这是因为所有可能的关键字的集合可能比较大,而对应的地址数则可能比较少。对于哈希技术,主要研究两个问题:(1)如何设计哈希函数以使冲突尽可能少地发生。(2)发生冲突后如何解决。构造好的哈希函数的方法,应能使冲突尽可能地少,因而应具有较好的随机性。这样可使一组关键字的散列地址均匀地分布在整个地址空间。根据关键字的结构和分布的不同,可构造出许多不同的哈希函数。。该哈希函数H(k)为:H(k)=k+c(c≥0)这种哈希函数计算简单,并且不可能有冲突发生。当关键字的分布基本连续时,可使用直接定址法的哈希函数。否则,若关键字分布不连续将造成内存单元的大量浪费。7-1-1哈希函数的构造方法例:统计某地区从1949年到1995年每年出生的人数,列在一张表中。年份为关键字,因共有47年,所以表中位置范围是1~47。设置H(k)=k-1948即可,其中k为年份数。这样的哈希表示意如下:若要查1970年的出生人数,则根据(1970-1948=22)计算,在表的第22个位置即可找到。7-1-1哈希函数的构造方法

第七章哈希表 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数41
  • 收藏数0 收藏
  • 顶次数0
  • 上传人花开花落
  • 文件大小2.13 MB
  • 时间2019-04-30