下载此文档

第08章 哈希表.ppt


文档分类:IT计算机 | 页数:约26页 举报非法文档有奖
1/26
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/26 下载此文档
文档列表 文档介绍
引入
《数据结构(C#语言描述)》配套PPT
在C#的万物之母object对象中定义了一个虚方法GetHashCode(),这个方法用于获取对象的哈希码。什么是哈希码?它有什么作用?为什么要在如此重要的类中定义这个方法?哈希码跟哈希表有什么内在的联系吗?本章将对这些问题展开论述。。
概念引入
《数据结构(C#语言描述)》配套PPT
【例8-1 Demo8-】使用学号查找学生地址
【例8-2 Demo8-】哈希查找
地址(Address)
0
学号(StuNum)
索引
200809001
广西南宁
200809002
广西南宁
200809003
北京
200809004
上海
200809005
广东深圳
1
2
3
4
构造哈希函数的方法
《数据结构(C#语言描述)》配套PPT
构造哈希函数的目标是使哈希地址尽可能均匀地分布在连续的内存单元地址上,以减少冲突发生的可能性,同时使计算尽可能简单以达到尽可能高的时间效率。根据关键字的结构和分布不同,可构造出与之适应的各不相同的哈希函数。这里主要讨论几种常用的整数类型关键字的哈希函数构造方法。
构造哈希函数的方法
《数据结构(C#语言描述)》配套PPT

直接定址法
直接定址法取关键字或关键字的某个线性函数为哈希地址。即:
h(key) = key 或 h(key) = a * key + b
其中a、b为常数,调整a与b的值可以使哈希地址取值范围与存储空间范围一致。这种哈希函数计算简单,并且不会有冲突发生。它适合于关键字的分布基本连续的情况,若关键字分布不连续,将造成存储空间的大量浪费。
构造哈希函数的方法
《数据结构(C#语言描述)》配套PPT

数字分析法
该方法是提取关键字中随机性较好的数字位,然后把这些数位拼接起来作为哈希地址。它适合于所有关键字值都已知的情况,并需要对关键字中每位的取值分布情况进行分析。

6 1 3 1 7 6 3 2
6 2 3 2 6 8 7 5
6 2 3 4 3 6 3 4
6 2 7 0 6 6 1 6
6 1 7 7 4 6 3 8
6 1 3 8 1 2 6 1
6 1 3 9 4 2 2 0
⑧⑦⑥⑤④③②①
提取结果
12
25
44
6
78
81
90
构造哈希函数的方法
《数据结构(C#语言描述)》配套PPT

除留余数法
除留余数法采用取模运算(%),把关键字除以某个不大于哈希表表长的整数得到的余数作为哈希地址。哈希函数的形式为:
h(key) = key % p
除留余数法的关键是选好p,使得记录集合中的每个关键字通过该孩子数转换后映射到哈希表范围内任意地址上的概率相等,从而尽可能减少发生冲突的可能性。
507683的二进制
11110111**********
507683%25相当于取低5位二进制数
哈希冲突解决方法
《数据结构(C#语言描述)》配套PPT
哈希函数的目标是尽量减少冲突,但实际应用中冲突是无法避免的,所以在冲突发生时,必须有相应的解决方案。而发生冲突的可能性又跟以下两个因素有关:
装填因子α
所采用的哈希函数
哈希冲突解决方法
《数据结构(C#语言描述)》配套PPT
冲突解决技术可分为两大类:开散列法(又称为链地址法)和闭散列法(又称为开放地址法)。哈希表是用数组实现的一片连续的地址空间,两种冲突解决技术的区别在于发生冲突的元素是存储在这片数组的空间之外还是空间之内
哈希冲突解决方法
《数据结构(C#语言描述)》配套PPT

闭散列法(开放地址法)
闭散列法是把所有的元素存储在哈希表数组中。当发生冲突时,在冲突位置的附近寻找可存放记录的空单元。寻找“下一个”空位的过程称为探测。上述方法可用如下公式表示:
hi = (h(key) + di) % m
其中 i = 1,2,…,k (k ≤ m - 1)
其中h(key)为哈希函数;m为哈希表长;di为增量的序列。根据di取值的不同,可以分成几种探测方法,
哈希冲突解决方法
《数据结构(C#语言描述)》配套PPT

闭散列法(开放地址法)
线性探测法
1
线性探测法的基本思想是:当发生冲突时,从冲突位置的下一个单元顺序寻找,只要找到一个空位,就把元素放入此空位中。顺序查找时,把哈希表看成一个循环表,即如果到最后一个位置也没有找到空位,则回到表头开始继续查找。此时,如果仍然未找到空位,则说明哈希表已满,需要进行溢出处理。

第08章 哈希表 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数26
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小720 KB
  • 时间2018-06-23