查找之散列查找(哈希表)

这篇博客详细介绍了散列表(哈希表)的基础知识,包括散列函数的构造方法,针对数字和字符关键词的不同处理方式,以及如何解决散列表中的冲突问题,并探讨了散列表的性能分析。内容参考自网易云课堂的浙江大学数据结构课程。
摘要由CSDN通过智能技术生成

本学习笔记部分内容来自网易云课堂浙江大学数据结构课程,谢谢!

1、散列表(哈希表)

已知的几种查找方法:
顺序查找  O(N)
二分查找(静态查找)  O(logN)
二叉搜索树      O(h)  h为二叉树高度   (动态查找:有插入有删除有查找)
平衡二叉树      O(logN)

查找的本质:已知对象找位置
1、有序安排对象:全序或半序;
2、直接算出对象位置:散列。

散列查找法的两项基本工作:
1、计算位置:构造散列函数确定关键词存储位置;
2、解决冲突:应用某种策略解决多个关键词位置相同的问题。
时间复杂度几乎为常量O(1),也就是说只要散列函数构造得好,查找时间与问题规模无关。
散列的基本思想:
1、以关键字key为自变量,通过一个确定的函数h(散列函数),计算出对应的函数值h(key),作为数据对象的存储地址;
2、可能不同的关键字会映射到同一个散列地址上,即h(keyi)=h(keyj),而(keyi不等于keyj),这称为冲突,需要某种冲突解决策略。

举例:

2、散列函数的构造方法

一个好的散列函数应该:1、计算简单,以提高转换速度;2、关键词对应的地址空间分布均匀,以减少冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值