数据结构笔记2
一、红黑树Red-Black Tree1. 背景平衡二叉树AVL虽能保证查询复杂度稳定在O(logN)但旋转调整过于复杂性能消耗较大红黑树作为折中方案兼顾稳定性和维护成本是“最优二叉搜索树”。2. 理论基础与来源1数据结构演进逻辑哈希表拉链法查询复杂度可达O(N) → 引入二叉搜索树BST但BST不稳定最坏退化为链表 → 平衡二叉树AVL解决稳定性但旋转复杂 → 红黑树折中方案源于多叉树家族的2-3-4树四阶B树。22-3-4树核心从下向上构建节点可实现“升级”如二节点升级为三节点插入数据时通过“向上挤压中间值”维持树形结构为红黑树的构建提供底层逻辑。3. 核心特性与性能优势1五大核心特性必须满足所有节点非红即黑根节点必为黑色叶子节点NIL节点空节点必为黑色红色节点的子节点必须是黑色即不能出现两个连续的红色节点从根节点到任意叶子节点的路径上黑色节点的数目完全相同。2性能优势平衡要求宽松仅要求“最长路径长度不超过最短路径长度的2倍”无需像AVL树那样严格维持左右子树高度差≤1维护成本低减少了旋转调整的次数兼顾O(logN)的查询/插入/删除复杂度是实际应用中最优的二叉搜索树。二、哈夫曼编码Huffman Coding1. 学习背景解决的核心问题解决定长编码空间浪费、变长编码解码歧义的问题核心应用于数据压缩实现“高频字符占用空间少、低频字符占用空间多”的高效编码。2. 编码方式对比核心区别定长编码如ASCII码每个字符固定占用8位优点是解码简单缺点是高频字符存在大量冗余压缩率低普通变长编码自定义编码长度高频字符短、低频字符长可减少总比特数但存在解码歧义无法确定编码截取边界无法准确还原原始数据。3. 哈夫曼树构建与编码原理1哈夫曼树定义带权路径长度WPL最小的二叉树权值对应字符出现频率。2构建策略关键步骤每次选取权值最小的两个节点合并生成一个新节点新节点权值两个子节点权值之和重复此过程直至所有节点合并为一棵完整的树核心原则是“权值大的节点离根节点更近”。3压缩原理编码规则哈夫曼树中左路径编码为0右路径编码为1每个字符的编码为“从根节点到该节点的路径组合”核心优势编码为前缀码任意一个字符的编码都不是另一个字符编码的前缀解决了解码歧义高频字符编码短、低频字符编码长压缩率可达60%-75%。三、B树B-Tree及其应用场景1. 学习背景解决的核心问题针对磁盘I/O延迟高的特性优化数据库、文件系统的存储结构核心目标是减少磁盘I/O次数提升系统性能。2. 存储介质速度差异核心前提速度层级从快到慢CPU0.2纳秒→ 内存20纳秒→ 磁盘3.5毫秒约10^6纳秒性能瓶颈CPU不直接访问磁盘需通过内存加载磁盘数据因此磁盘I/O操作是系统性能的主要瓶颈减少I/O次数是核心优化方向。3. B树结构优势与应用逻辑1核心结构优势多叉树结构单个节点可存储大量键值Key和指针大幅降低树高示例1000条数据二叉搜索树红黑树树高约10层需10次磁盘I/OB树通过增加分支数树高可降至3层左右仅需3次I/O大幅提升效率。2设计核心逻辑性能权衡牺牲少量CPU计算时间B树节点内部需对键值进行多次比较CPU纳秒级操作换取磁盘I/O指数级减少磁盘I/O为毫秒级操作减少I/O次数对性能的提升远大于CPU计算的消耗主要应用数据库索引、文件系统适配大量数据的存储与高效查询。四、总结红黑树折中平衡与维护成本最优二叉搜索树适用于内存中数据的高效操作哈夫曼编码基于哈夫曼树的前缀编码核心用于数据压缩兼顾高效与无歧义B树多叉结构降低树高减少磁盘I/O适用于数据库、文件系统等磁盘存储场景。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2512504.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!