散列表

散列表
1.概念
根据给定的关键字计算关键字在表中的地址的数据结构。散列表简历的关键字和存储地址之间的一直直接映射关系。
2.散列函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,纪委Hash(key)=Addr
冲突:三列函数可能吧两个或两个以上的不同关键字映射到统一地址,成为“冲突”
3.三列函数和冲突处理办法
构造散列函数
1.定义域必须,值域
2.计算出来的地址等概率、均匀
3.尽量简单

4.常用散列函数构造方法:
1.直接定址法:
线性函数:H(key) = akey+b
2.除留余数法
假设散列表长为m,娶一个不大于m但最接近于m的质数p,利用H(key) - key % m计算
3.数字分析法
选取分布较的数码作为散列地址
4.平方取中法
先平方,取中间几位作为散列地址
5.折叠法
将关键字分割成尾数相同的几部分(最后一部分可以短),叠加和作为散列地址
二、冲突解决办法
1,。开放定址法
(1)线性探测法,产生冲突后,顺序查找空闲单元——会使大量元素在相邻的散列地址上聚集
(2)平方探测法——可以避免堆积问题,但不能探测到散列表上所有的单元
(3)再散列法Hi = (H(key) + i
Hash2(key))%m
(4)伪随机序列法

2、拉链法
		(1)把所有的同义词储存在一个线性的链表中,适用于经常插入和删除的情况 		 

三、散列表的查找过程
在这里插入图片描述
四、散列表查找性能
与装填因子有关:一个表的装满程度
在这里插入图片描述
题目:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值