数据结构--哈希表,哈希函数(或者散列表、散列函数)

 目录

哈希表的定义

处理冲突的方法--拉链法 

散列查找

常见的散列函数(构造哈希函数)

除留余数法

直接定址法

 数字分析法

平方取中法

处理冲突的方法--开放定址法

(1)线性探测法: 

(2)平方探测法

(3)伪随机序列发 

处理冲突的方法--再散列法 

总结 


 哈希表的定义

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第1张图片

处理冲突的方法--拉链法 

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第2张图片

散列查找

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第3张图片

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第4张图片

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第5张图片

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第6张图片

圈出来部分,分别是除了第一层查找1次,其他每个元素查找次数 

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第7张图片

 数据结构--哈希表,哈希函数(或者散列表、散列函数)_第8张图片

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第9张图片

装填因子a=表中记录数/散列表长度

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第10张图片

 数据结构--哈希表,哈希函数(或者散列表、散列函数)_第11张图片

常见的散列函数(构造哈希函数)

除留余数法

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第12张图片

直接定址法

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第13张图片

 数字分析法

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第14张图片

平方取中法

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第15张图片

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第16张图片

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第17张图片

 

处理冲突的方法--开放定址法

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第18张图片 

(1)线性探测法: 

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第19张图片

 把元素1放到数组2位置,然后接着算68,20....

  

 68和20按照哈希函数取余,分别是3,7,而数组下标3,7还没有存放与元素,所以没有冲突,可以直接放进数组对应的下标里面,如图:

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第20张图片

接着放84时,按照哈希函数取余时6,6已经有元素放了,所以按照线性推测法 公式算,依次往后找,找到8下标没有元素,所以84放到下标8那里

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第21张图片

存放84的结果如下:

 

然后是27: 

 

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第22张图片

存放27的结果

 

删除操作 

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第23张图片 

 

(2)平方探测法

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第24张图片 

 数据结构--哈希表,哈希函数(或者散列表、散列函数)_第25张图片

(3)伪随机序列发 

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第26张图片 

 存放结果:

处理冲突的方法--再散列法 

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第27张图片

总结 

装填因子,线性探测法很重要

数据结构--哈希表,哈希函数(或者散列表、散列函数)_第28张图片 

你可能感兴趣的:(数据结构,散列表,哈希算法,考研,学习,算法)