7.5_1散列查找(上)

基于一种数据结构:
散列表(Hash Table),又称作哈希表

特点:数据元素的关键字与其存储地址直接相关

 

 其实这个散列表也是基于数组实现的

加入19对13取余

 

 

 加入再次插入1的话,塞不进去

 

 

数据元素不会直接存放到数组中

而是通过指针

 

这种方法也叫做拉链法(也叫做链接法,链地址法)来处理冲突

将如何基于这个数据结构进行查找操作

 

 

在序号为1的链表中查找

 查找长度为3

 

 

链表的头指针是空的(查找长度为0)

查找长度定义:在查找运算中需要对比关键字的次数(不包括开始的指针判断)

 我们还可以算出平均查找长度:

效率非常高,比顺序查找高多了

如果没有同义词的话:

 最理想情况:散列查找的时间复杂度可以达到O(1)

 一共就这么多情况,这13中情况等可能发生

装填因子会影响查找效率

散列表越短,发生冲突的情况越多

那么为了效率更高

 常见的散列函数

设计目标:让不同关键字的冲突尽可能地少

 

 与质数相反的概念就是合数

 

 

 

 

 也可以直接使用直接定址法

 但是并不实际,空间复杂度太高

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值