标签:数据结构

共 36 篇文章

哈希表负载因子与冲突解决:开放寻址与链地址法的渐进复杂度对比

哈希表负载因子与冲突解决:开放寻址与链地址法的渐进复杂度对比 哈希表是一种通过键(Key)直接访问值(Value)的数据结构。它的核心是哈希函数,负责将键映射到数组的索引位置。但不

# 哈希表 # 负载因子 # 冲突解决
2026-07-14 104 0

为什么哈希表查找是O(1):均匀散列假设与冲突处理的代价

为什么哈希表查找是O1:均匀散列假设与冲突处理的代价 哈希表(Hash Table)是一种神奇的数据结构,它允许我们在平均情况下以常数时间 O1 的复杂度来查找、插入和删除数据。这

# 哈希表 # 数据结构 # 算法复杂度
2026-07-09 154 0

稀疏矩阵的压缩存储格式COO、CSR与CSC的内存效率对比

稀疏矩阵的压缩存储格式COO、CSR与CSC的内存效率对比 理解问题:为什么要用压缩格式? 观察一个大型矩阵。你会发现,如果这个矩阵的大部分元素都是零,就像一个巨大的电子表格,但几

# 稀疏矩阵 # 压缩存储 # COO格式
2026-07-02 115 0

Redis Sorted Set实现排行榜的内存与性能优化

Redis Sorted Set实现排行榜的内存与性能优化 Redis Sorted Set 有序集合,简称 ZSet 是实现排行榜功能的利器,它通过 score 为每个元素提供自

# Redis # 排行榜 # 内存优化
2026-06-15 130 0

Elasticsearch的倒排索引与分词器原理

Elasticsearch的倒排索引与分词器原理 要真正用好Elasticsearch,必须理解其核心数据结构——倒排索引,以及倒排索引构建的前提——分词器。本文将拆解这两个核心概

# Elasticsearch # 倒排索引 # 分词器
2026-05-31 134 0

Redis Stream的消费者组与消息确认机制

Redis Stream的消费者组与消息确认机制 核心概念解析 Redis Stream是一种强大的数据结构,用于处理消息队列。要高效且安全地消费消息,必须理解其两大核心机制:消费

# RedisStream # 消费者组 # 消息确认
2026-05-31 162 0

Python heapq模块实现优先队列与Top-K问题

Python heapq模块实现优先队列与TopK问题 在处理数据时,我们常遇到两种典型需求:一是需要一个能自动排序并快速取出最值的数据结构(优先队列);二是从海量数据中快速找出前

# Python # heapq模块 # 优先队列
2026-05-19 206 0

C++ STL容器的选择:vector、list、deque各自的优势场景

C++ STL容器的选择:vector、list、deque各自的优势场景 编写高效C++程序的核心在于选对数据结构。标准模板库(STL)提供了序列容器 vector、list 和

# C++ # STL # 容器
2026-05-17 182 0

Redis ZSet底层跳表与压缩列表的切换条件

Redis ZSet底层跳表与压缩列表的切换条件 Redis的有序集合(Sorted Set,简称ZSet)是一种非常强大的数据结构,它结合了哈希表和跳表的优点,既能通过键快速定位

# Redis # ZSet # 跳表
2026-05-10 188 0

C++ std::array和C数组的区别:为什么推荐用std::array

C++ std::array和C数组的区别:为什么推荐用std::array C 数组是 C 和 C++ 中的基础数据结构,但 C++ 标准库提供了 std::array,一个更现

# C++ # std::array # C数组
2026-05-10 195 0

Redis OBJECT ENCODING查看数据结构底层编码类型

Redis 中的 5 种基础数据类型(String、List、Hash、Set、ZSet)在底层实现上并不单一。为了平衡内存占用与读写性能,Redis 会根据数据量的大小、元素的长

# Redis # 数据结构 # 底层编码
2026-05-07 200 0

Python字典的底层实现:为什么Python3.7+字典是有序的

Python字典的底层实现:为什么Python3.7+字典是有序的 在Python 3.7之前,字典是无序的,遍历字典的顺序取决于键的哈希值和碰撞情况。从Python 3.7开始,

# Python字典 # 底层实现 # 有序字典
2026-05-04 195 0

Java Deque双端队列实现栈与队列的最佳实践

Java Deque双端队列实现栈与队列的最佳实践 Java中的 Deque Double Ended Queue 接口是一种支持在两端插入和删除元素的线性集合。它不仅实现了标准的

# Java # 数据结构 # 双端队列
2026-05-04 171 0

Python weakref.WeakKeyDictionary在缓存键对象回收时的行为

Python weakref.WeakKeyDictionary在缓存键对象回收时的行为 1. WeakKeyDictionary基本概念 创建 weakref.WeakKeyDi

# Python # 弱引用 # 缓存
2026-04-29 191 0

Python collections.deque与list在队列操作中的性能对比

Python collections.deque与list在队列操作中的性能对比 在Python中,处理数据序列时,list 是最常用的数据结构。然而,当涉及到队列操作——即先进先

# Python # collections.deque # list
2026-04-26 202 0

Go语言Map的扩容机制与rehash过程的并发安全性

Go语言Map的扩容机制与rehash过程的并发安全性 Go语言中的 map 是开发中最常用的数据结构之一,但其内部实现机制涉及复杂的内存管理和并发控制。理解其扩容与迁移过程,对于

# Go语言 # Map # 扩容机制
2026-04-21 197 0

Go语言sync.Map的read与dirty双map结构设计

Go语言sync.Map的read与dirty双map结构设计 在Go语言中,并发安全的数据结构一直是开发者关注的问题。sync.Map作为标准库提供的并发安全map实现,其核心创

# Go语言 # sync.Map # 并发安全
2026-04-20 180 0

R 数据结构:向量、矩阵、数据框

R 数据结构:向量、矩阵、数据框 R 语言处理数据的核心在于掌握其基础数据结构。理解并熟练使用向量、矩阵和数据框,是进行复杂数据分析的前提。以下指南将带你直接通过代码掌握这三种结构

# R语言 # 数据结构 # 向量
2026-04-19 174 0

C++ STL 容器:vector、list、map 的使用

C++ STL 容器:vector、list、map 的使用 C++ 标准模板库(STL)提供了三种最核心的容器:vector(动态数组)、list(双向链表)和 map(映射)。

# C++ # STL # 容器
2026-04-18 163 0

Java 集合框架:ArrayList 与 LinkedList 的性能对比

Java 集合框架:ArrayList 与 LinkedList 的性能对比 在 Java 开发中,ArrayList 和 LinkedList 是 List 接口最常用的两个实现

# Java # 集合框架 # 性能对比
2026-04-15 157 0