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

数据结构笔记2

一、红黑树(Red-Black Tree)

1. 背景

平衡二叉树(AVL)虽能保证查询复杂度稳定在O(logN),但旋转调整过于复杂,性能消耗较大;红黑树作为折中方案,兼顾稳定性和维护成本,是“最优二叉搜索树”。

2. 理论基础与来源

(1)数据结构演进逻辑:哈希表拉链法查询复杂度可达O(N) → 引入二叉搜索树(BST),但BST不稳定,最坏退化为链表 → 平衡二叉树(AVL)解决稳定性,但旋转复杂 → 红黑树(折中方案),源于多叉树家族的2-3-4树(四阶B树)。

(2)2-3-4树核心:从下向上构建,节点可实现“升级”(如二节点升级为三节点),插入数据时通过“向上挤压中间值”维持树形结构,为红黑树的构建提供底层逻辑。

3. 核心特性与性能优势

(1)五大核心特性(必须满足):

  • 所有节点非红即黑;

  • 根节点必为黑色;

  • 叶子节点(NIL节点,空节点)必为黑色;

  • 红色节点的子节点必须是黑色(即不能出现两个连续的红色节点);

  • 从根节点到任意叶子节点的路径上,黑色节点的数目完全相同。

(2)性能优势:

  • 平衡要求宽松:仅要求“最长路径长度不超过最短路径长度的2倍”,无需像AVL树那样严格维持左右子树高度差≤1;

  • 维护成本低:减少了旋转调整的次数,兼顾O(logN)的查询/插入/删除复杂度,是实际应用中最优的二叉搜索树。

二、哈夫曼编码(Huffman Coding)

1. 学习背景(解决的核心问题)

解决定长编码空间浪费、变长编码解码歧义的问题,核心应用于数据压缩,实现“高频字符占用空间少、低频字符占用空间多”的高效编码。

2. 编码方式对比(核心区别)

  • 定长编码:如ASCII码,每个字符固定占用8位,优点是解码简单,缺点是高频字符存在大量冗余,压缩率低;

  • 普通变长编码:自定义编码长度(高频字符短、低频字符长),可减少总比特数,但存在解码歧义(无法确定编码截取边界),无法准确还原原始数据。

3. 哈夫曼树构建与编码原理

(1)哈夫曼树定义:带权路径长度(WPL)最小的二叉树,权值对应字符出现频率。

(2)构建策略(关键步骤):每次选取权值最小的两个节点合并,生成一个新节点(新节点权值=两个子节点权值之和),重复此过程,直至所有节点合并为一棵完整的树;核心原则是“权值大的节点离根节点更近”。

(3)压缩原理:

  • 编码规则:哈夫曼树中,左路径编码为0,右路径编码为1,每个字符的编码为“从根节点到该节点的路径组合”;

  • 核心优势:编码为前缀码(任意一个字符的编码都不是另一个字符编码的前缀),解决了解码歧义;高频字符编码短、低频字符编码长,压缩率可达60%-75%。

三、B树(B-Tree)及其应用场景

1. 学习背景(解决的核心问题)

针对磁盘I/O延迟高的特性,优化数据库、文件系统的存储结构,核心目标是减少磁盘I/O次数,提升系统性能。

2. 存储介质速度差异(核心前提)

速度层级(从快到慢):CPU(0.2纳秒)→ 内存(20纳秒)→ 磁盘(3.5毫秒,约10^6纳秒);

性能瓶颈:CPU不直接访问磁盘,需通过内存加载磁盘数据,因此磁盘I/O操作是系统性能的主要瓶颈,减少I/O次数是核心优化方向。

3. B树结构优势与应用逻辑

(1)核心结构优势:多叉树结构,单个节点可存储大量键值(Key)和指针,大幅降低树高;

示例:1000条数据,二叉搜索树(红黑树)树高约10层,需10次磁盘I/O;B树通过增加分支数,树高可降至3层左右,仅需3次I/O,大幅提升效率。

(2)设计核心逻辑(性能权衡):

  • 牺牲少量CPU计算时间:B树节点内部需对键值进行多次比较(CPU纳秒级操作);

  • 换取磁盘I/O指数级减少:磁盘I/O为毫秒级操作,减少I/O次数对性能的提升远大于CPU计算的消耗;

  • 主要应用:数据库索引、文件系统,适配大量数据的存储与高效查询。

四、总结

  • 红黑树:折中平衡与维护成本,最优二叉搜索树,适用于内存中数据的高效操作;

  • 哈夫曼编码:基于哈夫曼树的前缀编码,核心用于数据压缩,兼顾高效与无歧义;

  • B树:多叉结构降低树高,减少磁盘I/O,适用于数据库、文件系统等磁盘存储场景。

http://www.jsqmd.com/news/633279/

相关文章:

  • Fish Speech-1.5开源TTS模型部署:Xinference 2.0集群化部署方案
  • 分析2026年数据加密靠谱公司,福建含章数据科技实力凸显 - mypinpai
  • 3个步骤让MacBook Pro Touch Bar在Windows中焕发新生
  • 2026年大学生收藏攻略:亲测10个降AI率工具,论文降AI哪家强? - 降AI实验室
  • 2026年近期温州导电环厂家选型指南:五家**服务商深度解析 - 2026年企业推荐榜
  • SITS2026发布即生效:7大核心模块、12项强制性接口规范、48小时快速自检清单(附工信部备案路径)
  • 终极指南:使用ncmdump免费解密网易云音乐NCM文件,轻松转换MP3格式
  • HunyuanVideo-Foley 音效生成效果展示:多场景高质量音频作品集
  • 5步掌握开源视频修复工具:轻松拯救损坏的MP4文件
  • Kimi-VL-A3B-Thinking多场景落地:从个人学习到中小企业AI能力建设
  • 山东一卡通线上回收平台推荐:安全又便捷的交易新方式 - 团团收购物卡回收
  • 粉紫系超人气月兔铃仙耸
  • Step3-VL-10B-Base在嵌入式领域的遐想:STM32与轻量AI模型的边缘协同
  • 终极免费指南:3步将网易云NCM加密音乐转换为通用MP3格式
  • 用Canvas API实现一个简单的图片编辑器(裁剪、滤镜)
  • 项目实训开发日志(四):BabyMind:基于多Agent和RAAG的科学育儿辅助平台
  • 如何快速配置Windows实时语音识别工具:TMSpeech完整实用指南
  • [项目实训]-04 每日一句功能的前后端实现
  • yz-bijini-cosplay效果实测:LoRA动态切换时GPU显存占用波动<5%的稳定性验证
  • Qwen2.5-VL-7B-Instruct实操手册:模型加载耗时优化、KV Cache配置与吞吐提升
  • Linux内核中的文件系统缓存机制详解
  • 从安装到运行:PyTorch 2.6 镜像完整使用流程解析
  • Scarab终极指南:空洞骑士模组管理的完整解决方案
  • --- lite-xl 微调版 ---
  • 低空经济“火眼金睛”:避障与防撞系统核心技术全解析
  • [精品]基于微信小程序的宠物之家宠物领养和宠物商城小程序 UniApp
  • HY-MT1.5-1.8B翻译模型入门指南:简单部署,体验33种语言互译的强大功能
  • PowerToys FancyZones架构解析:企业级窗口管理系统的深度集成与性能调优
  • 魔兽争霸3终极优化指南:如何免费提升游戏性能与兼容性
  • 电子小白的工具三件套:面包板、杜邦线、万能板