三九宝宝网宝宝百科宝宝知识

数据结构教程第三十二课哈希表

11月26日 编辑 39baobao.com

[数据结构教程第三十四课插入排序,快速排序]教学目的: 掌握排序的基本概念,插入排序、快速排序的算法教学重点: 插入排序、快速排序的算法教学难点: 快速排序算法授课内容:一、排序概述排序:将一个数据元素的无序序列重...+阅读

教学目的: 掌握哈希表的概念作用及意义,哈希表的构造方法

教学重点: 哈希表的构造方法

教学难点: 哈希表的构造方法

授课内容:

一、哈希表的概念及作用

一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。

理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个的存储位置相对应。

哈希表最常见的例子是以学生学号为关键字的成绩表,1号学生的记录位置在第一条,10号学生的记录位置在第10条...

如果我们以学生姓名为关键字,如何建立查找表,使得根据姓名可以直接找到相应记录呢?

a b c d e f g h i j k l m n o p q r s t u v w x y z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

刘丽 刘宏英 吴军 吴小艳 李秋梅 陈伟 ...

姓名中各字拼音首字母 ll lhy wj wxy lqm cw ...

用所有首字母编号值相加求和 24 46 33 72 42 26 ...

最小值可能为3 值可能为78 可放75个学生

用上述得到的数值作为对应记录在表中的位置,得到下表:

成绩一 成绩二...

3 ...

... ...

24 刘丽 82 95

25 ...

26 陈伟

... ...

33 吴军

... ...

42 李秋梅

... ...

46 刘宏英

... ...

72 吴小艳

... ...

78 ...

上面这张表即哈希表。

如果将来要查李秋梅的成绩,可以用上述方法求出该记录所在位置:

李秋梅:lqm 12+17+13=42 取表中第42条记录即可。

问题:如果两个同学分别叫 刘丽 刘兰 该如何处理这两条记录?

这个问题是哈希表不可避免的,即冲突现象:对不同的关键字可能得到同一哈希地址。

二、哈希表的构造方法

1、直接定址法

例如:有一个从1到100岁的人口数字统计表,其中,年龄作为关键字,哈希函数取关键字自身。

地址 01 02 ... 25 26 27 ... 100

年龄 1 2 ... 25 26 27 ... ...

人数 3000 2000 ... 1050 ... ... ... ...

...

2、数字分析法

有学生的生日数据如下:

年.月.日

75.10.03

75.11.23

76.03.02

76.07.12

75.04.21

76.02.15

...

经分析,第一位,第二位,第三位重复的可能性大,取这三位造成冲突的机会增加,所以尽量不取前三位,取后三位比较好。

3、平方取中法

取关键字平方后的中间几位为哈希地址。

5、除留余数法

取关键字被某个不大于哈希表表长m的数p除后所得余数为哈希地址。

H(key)=key MOD p (p

以下为关联文档:

数据结构教程第三十九课索引文件教学目的: 掌握索引文件的有关概念教学重点: 索引文件的基本概念,索引文件的重要意义教学难点: 索引文件的建立授课内容:一、索引文件的基本概念除了文件本身(称作数据区)之外...

数据结构教程第三十三课哈希教学目的: 掌握哈希表处理冲突的方法及哈希表的查找算法教学重点: 哈希表处理冲突的方法教学难点: 开放定址法授课内容:一、复习上次课内容什么是哈希表?如何构造哈希表?提...

数据结构教程第三十八课文件概念,顺序文件教学目的: 掌握文件基本概念,顺序文件的概念。 教学重点: 文件基本概念 教学难点: 逻辑结构与物理结构的关系。 授课内容: 一、表与文件 和表类似,文件是大量记录的集合。习惯上称...

数据结构教程第二十九课静态查找表教学目的: 掌握查找的基本概念,顺序表查找的性能分析 教学重点: 查找的基本概念 教学难点: 顺序表查找的性能分析 授课内容: 一、查找的基本概念 查找表: 是由同一类型的数据元素(...

数据结构教程第二十六课图的定义与术语教学目的: 掌握图的定义及常用术语 教学重点: 图的常用术语 教学难点: 图的常用术语 授课内容: 一、图的定义 图是一种数据元素间为多对多关系的数据结构,加上一组基本操作构成的...

数据结构教程第二十五课单元测验教学目的: 复习前面所学的内容,检验学习效果,拾遗补缺 教学重点: 教学难点: 授课内容: 测验题: 一,填空: 基本数据结构有____,____,____,____四种。 存储结构可根据数据元素在机器中的位置是否连续分...

计算机数据结构基本英语数组 array 矩阵 matrix 多维数组 multi-dimentional array 以行为主的顺序分配 row major order 以列为主的顺序分配 column major order 三角矩阵 truangular matrix 对称...

数据结构教程第二十八课图的存储结构教学目的: 掌握图的二种存储表示方法 教学重点: 图的数组表示及邻接表表示法 教学难点: 邻接表表示法 授课内容: 一、数组表示法 用两个数组分别存储数据元素(顶点)的信息和数据元...

数据结构教程第二十三课二叉树的存储结构教学目的: 掌握二叉树的两种存储结构 教学重点: 链式存储结构 教学难点: 链式存储二叉树的基本操作 授课内容: 一、复习二叉树的定义 二叉树的基本特征:每个结点的度不大于2。 二...

推荐阅读
图文推荐