与哈希表相关的专业名词! 一文搞懂!

这篇具有很好参考价值的文章主要介绍了与哈希表相关的专业名词! 一文搞懂!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

刚接触哈希的时候, 哈希表(hash table)、哈希(hashing)、哈希函数(hash function)、哈希算法(hashing algorithm)、字典(dictionary)、键(key)、值(value)、索引(index)、哈希码(hash code)、哈希值(hash value)这些名词总是在脑海里成为一团麻, 但又太过基础, 没有人清晰地帮我们辨析. 别担心! 本文将一一为你解答.

首先让我们回顾一下数据结构的概念.

我们都知道抽象数据类型(Abstract Data Type, ADT), 是指一种面对用户的纯理论的数学模型, 不涉及具体的实现. 而数据结构(data structure)则包含了实现ADT的具体数据及其方法. 举例来说, 堆栈是一种抽象数据类型, 当我们定义了它是一个拥有push和pop接口的一个数据集合时. 而我们在具体实现时, 选择了array或者linked list这些数据结构.

在哈希表这个主题下, 字典(dictionary)/关联数组(associative array)/映射(map)是哈希表(hash table)的抽象数据类型. 因此, 当我们在说键(key)值(value)的时候, 我们是在dictionary这个上层概念的范围内描述的. 对于用户来说, 他只关心如何用字典来存放他的数据, 而无需关心下层的hash table是怎么实现的. 举例来说, 假设有一个人想要存储一群人的信息, 他可以选择使用字典来存放, 将每个人的姓名作为key, 而将生日、国籍、职业这些信息作为value. 通过字典, 便可以轻松操作这群人的信息. 但这个人并不知道, 他所方便使用的字典的下层, 其实是一个哈希表在服务这个字典.

与哈希表相关的专业名词! 一文搞懂!

 哈希表是什么? 首先, 哈希表中的数据是存放在一个数组(array)当中的, 这个数据拥有索引(index). 而这个index也被我们称为哈希码(hash code)哈希值(hash value). 其次, 哈希表如何帮助实现字典中通过key获取value这样的方法的呢? 答案就是哈希! 哈希(hashing)是指使用哈希函数获得数组的索引(或者说获得哈希值)的过程. 其中, 哈希函数(hash function)的输入是用户的key, 输出是数组的index, 或者说是hash code. 用数学符号表示就是 index = h(key). 其中h代表hash function. 当获得数组的index, 我们便可以访问数组中存放的对应的value. 总结来说, 哈希函数的计算和通过索引访问数组数据, 这两步的时间复杂度都是常数, 因而使用哈希表访问数据的时间复杂度为常数. 而哈希算法(hashing algorithm)就是哈希函数的别称.

 文章来源地址https://www.toymoban.com/news/detail-746858.html

总结, 在哈希这个话题下:

用户能看到的只有键(key)和值(value).

一些同义而不同名的专业名词总结如下:

索引(index)==哈希值(hash value)==哈希码(hash code)

哈希函数(hash function)==哈希算法(hashing algorithm)

 

希望对大家有所帮助! 有什么问题请在评论区提出:)

 

到了这里,关于与哈希表相关的专业名词! 一文搞懂!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • day0 -- Mysql专业名词认识部分

    数据库(database)/资料库 常见的数据库/资料库且以物理形式存在的,比如图书馆,再比如书柜。 是一种有组织的存放资料/数据的 容器 。 数据库管理系统(DBMS) 创建数据库和管理数据库的系统,可以对数据库进行组织、管理、访问、修改等操作的一套软件。 我们常说的Mysql是

    2024年02月07日
    浏览(27)
  • 扔掉抽象难懂专业名词,带你从头开始理解入门动态规划1

    注:并非指专业名词概念不好,而是认为乍一接触dp就开始啃那些难得名词比较容易劝退,这里用简单的思维理解来了解入门dp。 1.动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 2.由于动态规划并不是某种具体的算法,而是一种解决特定问

    2024年02月03日
    浏览(30)
  • Mac/win开发快捷键、vs插件、库源码、开发中的专业名词

    目录 底部dock栏 点按两下,更多操作,相当于windows鼠标右键 触控板 手势(2/3指) 鼠标右键 快捷键 鼠标选择后+shift+⬅️→改变选择 window Ctrl + Shift + Esc:强制关闭程序 mac Command + Option + Esc:强制关闭程序 command+⬅️:删除←边的全部内容 commad+tab显示下栏 command+shift+z向后撤

    2024年02月15日
    浏览(32)
  • 酒店系统相关名词

    1. PMS(Property Management System) 物业管理系统,简单来说就是酒店前台/店长使用的系统。主要是对酒店前台预订入住一系列流程的支持,还包括了房型房量房态管理,门市价/单店价格管理,账务处理等内容。 2.CMS(Content Management System) 内容管理系统,通常主要是对酒店和酒店

    2024年02月02日
    浏览(23)
  • 智能小程序相关名词解释(汇总)

    小程序 ID 小程序 ID 是智能小程序分配给开发者的应用 ID,是应用的唯一标示,只有应用创建后才可以获取。创建小程序应用后,您可获得小程序应用的小程序 ID。 小程序框架 小程序提供一套简单高效的开发框架,帮助您开发具有原生 App 体验的服务。 整个小程序框架系统分

    2024年01月18日
    浏览(36)
  • 一文读懂大唐杯所有名词解释 大唐杯仿真实验模拟满分操作详解:

    名词解释:  大唐杯名词解释 名词 定义 核心网 核心网部分就是位于网络子系统内,核心网的主要作用是把A口上来的呼叫请求或数据请求,接续到不同的网络上 接入网 接入网是指核心网络到用户终端之间的所有设备,其长度一般为几百米到几公里,因而被形象地称为\\\"最后

    2023年04月09日
    浏览(46)
  • 【Docker】子系统与其相关名词的界定、Control Groups等详细讲解

    前言 Docker 是一个 开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux或Windows 操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介: 热爱跑步的恒川 ,致力于

    2024年02月08日
    浏览(24)
  • [MySQL事务一文搞懂]

    事务(Transaction),顾名思义就是要做的或所做的事情,数据库事务指的则是作为单个逻辑工作单元执行的一系列操作(SQL语句)。 这些操作要么全部执行,要么全部不执行。 把一系列sql放入一个事务中有两个目的: 为数据库操作提供了一个从失败中恢复到正常状态的方法,同

    2024年02月05日
    浏览(45)
  • 一文搞懂Nginx(上)

    是一个高性能的HTTP和反向代理web服务器,我们常用的功能有HTTP代理、负载均衡、动静分离、高可用集群,目前阶段我使用得比较多是就是代理和负载均衡,官方数据测试表明能够支持高达 50,000 个并发连接数的响应。占用的内存也特别的少。 优点: 1、负载均衡(可以减轻单

    2024年04月09日
    浏览(33)
  • 一文搞懂隐私计算

    隐私计算(Privacy computing)是指在保证数据不对外泄露的前提下,由两个或多个参与方联合完成数据分析计算相关技术的统称。 隐私计算作为跨学科技术,以密码学为核心理论, 结合了大数据、人工智能、区块链等多领域知识。其这些技术路线中,以安全多方计算为代表的基

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包