哈希表及其应用

一、简介

哈希法(Hash)又称散列法。他的特点呢就是:能以常数平均时间(O(1))插入、删除和查找。
数组呢是寻址容易,插入、删除难;指针呢是插入、删除容易,寻址难。so Hash表该出马了

二、应用

1、编译器使用哈希表跟踪源代码中声明的变量
2、哈希表对于其节点都有实际名字而不是数字的任何图论问题都是有用的
3、在为游戏编制的程序中。当程序搜索游戏的不同的行为时,它跟踪通过计算基于未知的散列函数而得到一些位置,如果同样的位置再出现,程序同城通过简单移动变换来避免昂贵的重复计算
4、在写拼写检验程序

三、原理

给定表M,存在函数H(key),对任意给定的关键字key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数H(key)为哈希函数。
当关键字集合很大时,对于不同的关键字可能得到同一散列地址,即k1≠k2,而H(k1)=H(k2),这种现象称为冲突,此时k1和k2为同义词。实际中,冲突是不可避免的,只能通过改变哈希函数的性能来减少冲突。

所以呢,哈洗发只要关注两个内容
  1. 如何构造哈希函数
  2. 如何处理冲突

四、哈希函数构造方法

  1. 数字分析法
  2. 平方取中法
  3. 分段叠加法
  4. 除留余数法
  5. 伪随机数法

五、处理冲突方法

  1. 开放定址法
  • 线性探测再散列
  • 二次探测再散列
  • 伪随机探测再散列
  1. 链地址法
  2. 再哈希法
  3. 建立公共溢出区












                
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值