如何搜索哈希表?

2023-12-11

我刚刚开始学习哈希表,我了解如何插入但不知道如何搜索。这些是我将基于这个问题的算法:

散列密钥

int Hash (int key) {
    return key % 10;  //table has a max size of 10
}

用于解决碰撞的线性探测。

假设我使用键 1、11 和 21 调用 insert 两次。这将为所有 3 个键返回槽 1。冲突解决后,表的插槽 1、2 和 3 处的值为 1、11 和 21。这是我认为根据我对插入的理解会发生的情况。

这样做之后,如果我搜索键 11 和 21,如何获得槽 2 和 3?根据我读到的内容,搜索哈希表实际上应该与插入执行相同的操作,除非您到达所需的插槽时,您返回该插槽处的值,而不是向其中插入某些内容。

如果我从字面上理解并应用相同的算法,如果我搜索密钥 11,我将到达槽 4,因为它将从槽 1 开始并继续向前探测,直到找到空槽。即使它是我想要的,它也不会停在插槽 2 处,因为它不为空。

即使我使用单独的链接,我也在努力解决这个问题。所有 3 个键都将存储在槽 1 中,但使用相同的算法进行搜索将返回槽 1,而不是链表中的哪个节点。


每个槽存储一个键/值对。当您搜索每个槽时,请检查该密钥是否等于您正在搜索的密钥。当找到相等的键时停止搜索并返回值。

通过单独的链接,您可以对列表进行线性搜索,对照列表中的每个键检查该键。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何搜索哈希表? 的相关文章

  • Qt 计算和比较密码哈希

    目前正在 Qt 中为测验程序构建面向 Web 的身份验证服务 据我了解 在数据库中存储用户密码时 必须对其进行隐藏 以防落入坏人之手 流行的方法似乎是添加的过程Salt https en wikipedia org wiki Salt cr
  • 为什么 Java 中的 hashCode() 可以对不同对象返回相同的值?

    引用我正在读的书中的一段话首先Java http www amazon co uk Head First Java Kathy Sierra dp 0596009208 关键是 哈希码可以相同 但不一定保证对象相等 因为使用的 哈希算法 h
  • Rails 4 - 将地址保存为数据库中的一列

    我是 Rails 新手 正在开发一个简单的应用程序 我的 ERD 中有一个名为 Client 的模型 并且希望保存每个客户的地址 我最初的想法是将地址保存为单独的字段 即 rails g model Client address first
  • 如何对定义的字符集python中的所有可能的字符串进行加密?

    我试图加密定义的字符集中所有可能的字符串 然后将它们与用户输入给出的哈希进行比较 这就是我目前拥有的 import string from itertools import product import crypt def decrypt
  • 将 Python 中的 SHA 哈希计算转换为 C#

    有人可以帮我将以下两行 python 代码转换为 C 代码吗 hash hmac new secret data digestmod hashlib sha1 key hash hexdigest 8 如果您有兴趣 其余的看起来像这样 us
  • 哈希表的空间复杂度是多少?

    具有 32 位键和指向单独存储的值的 32 位指针的哈希表的大小是多少 是 2 32 个槽 4 字节 键 4 字节 指向值的指针 4 10 9 4 4 32GB 我想了解哈希表的空间复杂度 我认为你问错了问题 数据结构的空间复杂度表示它占用
  • 在 Perl 中使用数据引用的正确方法

    我有一组想要处理的数据 为了简化我的代码 最好通过指向原始数据的引用数组来访问我的数据的某些子集 比解释更好的是 我写下了这个例子 它还没有工作 最后 我想更新原始数据 而不必更新所有子集 用 Perl 可以做这样的事情吗 usr bin
  • HashMap 值需要不可变吗?

    我知道 HashMap 中的键需要是不可变的 或者至少确保它们的哈希码 hashCode 不会改变或与另一个具有不同状态的对象发生冲突 但是 HashMap中存储的值是否需要与上面相同 为什么或者为什么不 这个想法是能够改变值 例如在其上调
  • Java中HashMap和ArrayList的区别?

    在爪哇 ArrayList and HashMap被用作集合 但我不明白我们应该在哪些情况下使用ArrayList以及使用时间HashMap 他们两者之间的主要区别是什么 您具体询问的是 ArrayList 和 HashMap 但我认为要完
  • 线程“main”中的异常 java.lang.StackOverflowError

    我有一段代码 但我无法弄清楚为什么它在线程 main java lang StackOverflowError 中给出异常 这是问题 Given a positive integer n prints out the sum of the
  • 如何将文件的元素放入哈希中? -红宝石

    所以我有一个以下形式的文件 Key1 Value1 Key2 Value2 Key3 Value3 用制表符分隔 我的问题是如何打开这个文件并将其放入哈希中 我曾尝试这样做 fp File open file path fp each do
  • 如何将哈希表添加到多维数组?无法通过成员访问枚举分配值

    我在将哈希表添加到多维数组时遇到问题 我编码如下 Data BIBs BIB BIBName BIBName Standort Standort B cher BuchName BuchName Autor Autor 此代码正在运行并创建
  • 从哈希中删除 nil 值

    我希望从哈希中删除具有nil value article是一个存储每篇文章的类 并且attributes方法将文章存储为散列 预期结果 articles results author null title Former bar manage
  • 根据哈希值确认文件内容

    我需要 检查完整性 content文件数量 文件将写入 CD DVD 可能会被复制多次 这个想法是识别正确复制的副本 在从 Nero 等中删除它们之后 我对此很陌生 但快速搜索表明Arrays hashCode byte http down
  • JDK 8 - “无法解析类型 java.util.Map$Entry”[重复]

    这个问题在这里已经有答案了 我尝试使用 HashMap 但收到错误 无法解析类型 java util Map Entry 它是从所需的 class 文件间接引用的 我正在使用 JDK 8 和 Eclipse 有人知道为什么吗 My code
  • 如何制作具有两个索引的 Map?

    我在java中有一张这样的地图 Map
  • 与 6 位随机字母数字代码发生冲突的概率是多少?

    我使用以下 Perl 代码生成随机字母数字字符串 仅限大写字母和数字 用作 MySQL 数据库中记录的唯一标识符 数据库的行数可能会保持在 1 000 000 行以下 但实际的绝对最大值约为 3 000 000 行 我是否有 2 条记录具有
  • 地图中的一组键

    我有一个地图 X 我试图获取一组满足特定条件的键 如下所示 Map Keys X gt Set filter fun x gt 但我找不到从 F 的 Map 集合中获取密钥的方法 转换你的map http msdn microsoft co
  • mysql 使用什么样的哈希?

    我正在编写类似于 phpMyAdmin 的自己的代码 但我需要用户能够使用 mysql 数据库中的用户名和密码登录 我需要知道mysql数据库使用什么样的哈希来存储每个用户的密码 我检查了 dev mysql com 寻找答案 但除了以 开
  • 重新加载页面时删除哈希值?

    我使用哈希来切换我的图像滑块 当我重新加载页面并且哈希值设置为 e h 3 没有图片 当图库在几秒钟后自动滑动时 它显示下一个 所以几秒钟内什么也没有 有没有办法在加载页面时检查哈希并将其删除 我只想关心那些用散列为页面添加书签的人 问候

随机推荐

  • 如何使用 apache Camel 验证 xsd?

    我正在使用 apacheservicemix 并尝试使用 apache Camel 验证 xml 文档 我有一条名为 Students route xml 的路线
  • 单例与 Swift 3.0

    我用 Swift 2 0 实现了这个 Xcode 的建议不仅令人困惑 而且还会导致编译错误 这是一个用户传递 callfunc 闭包的库 Before protocol MyProtocol 主类 private static var t
  • 吃完 EOF 后重用 std::cin

    UNIX 命令wc有这个功能 wc aaa bbb ccc
  • 使用 VBScript 读取 CSV 文件

    我有一个包含 4 个字段的文件 A B C D 我只想提取第四个字段并将其更改为 E 有办法实现这个吗 假设这些值不包含逗号 请使用读取文件文件系统对象 FSO 那么Split每行以逗号分隔 根据需要更改包含 4 个值的结果数组 然后joi
  • R data.table 按名称进行多列转换[重复]

    这个问题在这里已经有答案了 设 DT 为数据表 DT lt data table V1 factor 1 10 V2 factor 1 10 V9 factor 1 10 是否有更好 更简单的方法来进行多列因子转换 如下所示 DT Vn1
  • 简写“index >= 0 && count++”有什么作用?

    我正在消磨时间阅读下划线 字符串函数 当我发现这个奇怪的简写时 function count str substr var count 0 index for var i 0 i lt str length index str indexO
  • 这种初始化方法有什么区别?

    这两个代码有什么区别 class SomeClass SomeType val new SomeType and class SomeClass SomeType val SomeClass val new SomeType 哪种方法是首选
  • R 闪亮的 RODBC 连接失败

    我有一个可以在本地运行的 R 闪亮应用程序 但是当我上传它时 出现错误 first argument is not an open RODBC channel 这是我的代码 conn lt suppressWarnings odbcDriv
  • C 计算字符串中某个字符出现的次数

    我是 C 新手 我正在自己工作explode像函数一样 我正在尝试计算指定字符在字符串中出现的次数 int count chars char string char chr int count 0 int i for i 0 i lt si
  • 如何使用selenium python点击谷歌上的第一个结果

    我正在尝试点击谷歌结果上的第一个结果 这是我的代码 我在其中输入从 csv 文件读取的 chennai craiglist 所以我确信有机结果中的第一个链接将是 chennai craiglist org 但我很安静 不知道该怎么做 fro
  • 如何用awk合并两个文件?

    我有两个文件的顺序相同 并且行数相同 file1 仅2列 562 201 RIR1 562 202 RIR1 562 203 RIR1 562 204 RIR1 562 205 RIR1 562 206 RIR1 562 207 RIR1
  • 库未在 Python 中初始化(pygame)

    所以我有一个在类函数中创建的字体 我在代码中多次调用这个函数并且它运行得很好 但是有一次当我调用它时它说 self font pygame font Font None self text size RuntimeError Library
  • UWP 项目中的条件包引用

    我想使用一个 NuGet 包仅用于调试配置 我found如果我有一个针对 Creators Update 15063 的 UWP 项目 则可以在 Visual Studio 2017 中执行此操作
  • Odoo 规则实际上运行正常吗?

    我的目的 我试图使用安全规则来实现以下目的 我需要在用户模型中添加一个字段 该字段将设置每个用户可以修改哪些仓库 这是因为我想隐藏您不允许看到的库存变动 其他仓库的库存变动 我做了什么 我创建了一个多对多字段命名allowed wareho
  • Bootstrap 工具提示不起作用

    我在这里要疯了 我有以下 HTML a href title A nice tooltip test a 而且Bootstrap风格的工具提示拒绝显示 只是一个普通的工具提示 我的 bootstrap css 工作得很好 我可以看到其中的类
  • c++11 如何实现`std::string ToString(std::tuple &t)`?

    我想要一个非常友好的ToString许多类型的函数 包括std tuple 函数是这样的 template
  • 绘制 100% 堆叠图问题

    我得到了一个数据框 df5 其中包含我从 read csv 读取的下表 Week Days Category Total Products Sold Total Profit 0 Monday A 3221 9999 53 0 Monday
  • 32 位 .NET 最大字节数组大小是否 < 2GB?

    我一直在研究一些与字节数组的最大大小相关的问题 here and here 并一直在玩一些数组并得到一些我不太明白的结果 我的代码如下 byte myByteArr byte myByteArr2 new byte 671084476 fo
  • 多个 WebClient 不工作?

    我正在尝试使用三个单独的 WebClient 下载三个文件 我用这个 void client1 OpenReadCompleted object sender OpenReadCompletedEventArgs e MessageBox
  • 如何搜索哈希表?

    我刚刚开始学习哈希表 我了解如何插入但不知道如何搜索 这些是我将基于这个问题的算法 散列密钥 int Hash int key return key 10 table has a max size of 10 用于解决碰撞的线性探测 假设我