当前位置: 首页 > news >正文

【0299】Postgres内核之哈希表(Hash Tables)

0. 哈希表(Hash Tables)

哈希表是 一种用于存储键值对的数据结构。与使用索引号访问元素的基本数组不同,哈希表使用键来查找表条目。这使得数据管理对于用户来说更易于管理,因为按属性对数据条目进行分类比按它们在一个巨大的列表中的数量更容易。

在 C++ 中,我们将哈希表实现为链表数组。它有点像一个多维数组。例如,在二维数组中,元素由固定长度的行组成。然而,在哈希表中,元素(又名桶)可以扩展或收缩以容纳几乎无限数量的表条目。

在效率方面,哈希表是数组和链表的折衷。它使用索引和列表遍历来存储和检索数据元素。

按索引查找元素使数组非常高效。无论项存储在数组中的什么位置,检索它总是需要相同的时间。用技术术语来说,从数组中获取一项是 O(1) 或“恒定时间”操作。

在链表中查找元素的效率要低得多。您不能直接访问列表中的任何节点。相反,您必须向下遍历列表,直到找到目标项。如果您要查找的项目恰好在列表的前面,则检索是一个 O(1) 操作,因为您只向下遍历了一个节点。如果该项目位于列表的末尾,则检索它将是 O(n) 操作,其中 n 是列表中节点的总数。

总而言之,随着数组中元素数量的增加,通过索引访问元素的运行时间保持不变。使用链表,访问特定元素所需的时间会随着元素的数量线性增加。
在这里插入图片描述

  • 如果键是小整数,我们可以使用数组来实现符号表,通过将键解释为数组索引,以便我们可以将与键 i 关联

相关文章:

  • FIO压测磁盘性能以及需要注意的问题
  • 下标引用操作符;函数调用操作符;结构成员访问操作符
  • MySQL-核心知识要点
  • 基于大语言模型的本地知识库问答(离线部署)
  • vue3开发过程中遇到的一些问题记录
  • C++ 彻底搞懂指针(1)
  • golang 1.22特性之for loop
  • 确保家电安全无忧:可燃气体报警器检验的重要性与必要性
  • 【小程序静态页面】猜拳游戏大转盘积分游戏小程序前端模板源码
  • word图题表题公式按照章节编号(不用题注)
  • 基于x86+FPGA+AI轴承缺陷视觉检测系统,摇枕弹簧智能检测系统
  • [数据集][目标检测]电力场景下电柜箱门把手检测数据集VOC+YOLO格式1167张1类别
  • MapReduce的执行流程排序
  • Spring Boot中的分布式文件系统
  • 版本控制系统:Git 纯应用(持续更新)
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • Druid 在有赞的实践
  • ES6语法详解(一)
  • Git初体验
  • Hexo+码云+git快速搭建免费的静态Blog
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java的Interrupt与线程中断
  • js作用域和this的理解
  • Lucene解析 - 基本概念
  • nginx 负载服务器优化
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • springMvc学习笔记(2)
  • 驱动程序原理
  • 如何进阶一名有竞争力的程序员?
  • 微服务框架lagom
  • 小程序开发中的那些坑
  • 原生js练习题---第五课
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 在electron中实现跨域请求,无需更改服务器端设置
  • ionic异常记录
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 如何正确理解,内页权重高于首页?
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​Linux·i2c驱动架构​
  • ######## golang各章节终篇索引 ########
  • #14vue3生成表单并跳转到外部地址的方式
  • #php的pecl工具#
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (06)Hive——正则表达式
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (javascript)再说document.body.scrollTop的使用问题
  • (WSI分类)WSI分类文献小综述 2024
  • (八)c52学习之旅-中断实验
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)项目管理杂谈-我所期望的新人