哈希表理论基础

30 篇文章 0 订阅
10 篇文章 0 订阅

哈希表理论基础


哈希表(Hash Table)

根据关键码的值进行访问的数据结构

通俗来说数组就是一张哈希表
哈希表中关键码就是数组的索引下标,通过下标直接访问数组中的元素

哈希表一般用于快速判断一个元素是否出现在集合中

eg:查询一个名字是否在这所学校中
使用枚举的时间复杂度是O(n)
使用哈希表的时间复杂度O(1)


哈希函数

哈希函数是一种将任意长度的数据映射为固定长度值的函数。它接收输入数据,经过计算后生成一个称为哈希值或摘要的输出。

哈希函数具有以下特点:

  1. 固定长度输出:无论输入数据的长度如何,哈希函数都会产生固定长度的哈希值。常见的哈希算法如MD5和SHA-256产生的哈希值长度分别为128位和256位。
  2. 独特性:对于不同的输入数据,哈希函数应该生成不同的哈希值。这意味着即使输入数据的细微变化,输出的哈希值也会有较大的差异。
  3. 不可逆性:从哈希值无法反推出原始输入数据。即使输入数据发生细微变化,也会导致生成完全不同的哈希值。
    高效性:哈希函数的计算应该是高效的,即使对于大量的输入数据也能够快速生成哈希值。

哈希碰撞

哈希碰撞是指在哈希函数中存在两个不同的输入数据,但它们却生成了相同的哈希值。换句话说,哈希碰撞是指两个不同的输入数据经过哈希函数计算后得到了相同的摘要。

拉链法

请添加图片描述

线性探测法请添加图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值