- 博客(19)
- 收藏
- 关注
原创 数据结构:散列表
散列结构通过哈希函数将键直接映射至存储位置,实现期望O(1)的插入、查找与删除。其核心为三组件模型:哈希函数、桶数组与冲突处理机制。装填因子α是性能关键变量,冲突不可避免,需通过开放定址或链地址法解决。现代实现如Swiss Table、Robin Hood优化工程性能,概率型结构(布隆过滤器等)以误差换空间,分布式哈希(一致性哈希)支持弹性扩展。散列表与树形结构互补:前者追求速度,后者保留有序性。选型需权衡有序性、误差容忍与分布需求。
2026-10-19 19:18:00
149
原创 数据结构:图
图是描述“多对多、可成环”关系的核心数据结构,广泛应用于地铁线路、社交网络等场景。本章从图的数学定义(顶点集V、边集E)出发,区分有向图与无向图,引入度、邻接、路径、连通性等基本概念,并通过实例走查验证握手定理、强连通分量等性质。图模型为后续遍历、拓扑排序、最短路径等算法奠定基础,是连接树形结构与散列结构的关键桥梁。
2026-10-19 19:16:55
169
原创 树形结构2
红黑树是一种近似平衡的二叉搜索树,通过五条性质(如根与叶子为黑、无连续红结点、黑高一致)保证树高不超过 $2\log_2(n+1)$,支持插入、删除操作均在 $O(\log n)$ 时间内完成。其结构可对应2-3-4树的二叉化表示,插入时通过旋转与重着色修复,删除则采用“替换删除+双黑修复”策略,最多触发3次旋转。相比AVL树,红黑树在维护平衡上更宽松,适合频繁插入/删除的场景,是标准库中常用的数据结构。
2026-10-17 13:57:44
170
原创 3树形结构
树是具有“一对多”层次关系的递归结构,由根结点及若干互不相交的子树构成。核心特征包括无环、连通、每结点有唯一父结点。基本术语涵盖结点度、树的度、深度(按层数计)、高度(按边数计)等。树可分类为有序/无序树、森林。关键性质如结点数与度之和的关系、层结点上限等,均基于递归定义,是二叉树、平衡树等数据结构设计的基础。
2026-10-17 13:57:07
180
原创 算法分析基础 4
摊还分析通过计算n个操作的总最坏时间复杂度T(n),得出均摊复杂度T(n)/n,揭示“昂贵操作稀少”的特性。与平均情况分析不同,它不依赖概率假设,而是提供确定性保证。三种标准方法——聚合分析(直接求和)、记账法(信用转移)、势能法(势能函数)——本质等价,均将代价平摊至各操作。聚合分析适用于简单场景,记账法直观易懂,势能法最通用严谨。典型应用如双栈队列、二进制计数器、multipop栈,均证明单次操作虽可能昂贵,但整体均摊代价仅为O(1),体现了高效数据结构设计的核心思想。
2026-10-16 12:11:25
430
原创 算法分析基础 3
代入法通过猜测递推式的渐近上界并用数学归纳法证明,核心在于准确猜测与常数调整;递归树法则将递归展开为树形结构,逐层计算代价并求和,直观易懂。二者结合可高效求解常见递推式,如二分查找、归并排序等,其中代入法需注意猜测过紧时的调整技巧,递归树法则适用于分析分治算法的时间复杂度。
2026-10-16 12:10:39
331
原创 2线性结构
线性表是由n个同类型数据元素构成的有限序列,具有唯一前驱与后继的线性关系。其抽象数据类型(ADT)定义了初始化、插入、删除、遍历等核心操作,强调逻辑结构与存储实现分离。操作复杂度取决于存储方式:顺序存储支持O(1)存取但插入/删除为O(n),链式存储则相反。基于线性表可衍生出栈(后进先出)与队列(先进先出)等受限结构,均为后续数据结构设计的基础。
2026-10-15 12:47:30
427
原创 《数据结构与算法》笔记说明
本笔记系统梳理数据结构与算法核心内容,涵盖算法分析、线性/树形/图形结构、排序查找、设计范式及复杂度理论。按认知逻辑分11篇,强调渐进分析、递推求解、摊还思想与工程实现,结合CLRS与严蔚敏教材,辅以C语言实现与数学推导,适用于教学与进阶学习。
2026-10-15 12:46:08
765
原创 算法分析基础 2
复杂度分析通过语句频度与渐近记号,抽象衡量算法随输入规模增长的资源消耗趋势。核心在于忽略硬件、语言差异,以时间复杂度 $T(n)$ 与空间复杂度 $S(n)$ 为评价标准。遵循“主项决定论”与三条简化规则(忽略、加法、乘法法则),结合六步流程,可系统评估循环与递归结构。关键思想是关注 $n \to \infty$ 时的增长趋势,实现跨算法、跨平台的效率比较,为算法选型提供理论依据。
2026-10-13 18:46:59
277
原创 算法分析基 1
本层聚焦算法分析基础,构建从直觉到严谨的完整认知链条:通过数据结构三要素(逻辑、存储、运算)建立统一术语体系,以渐近记号(O/Ω/Θ)精确刻画时间与空间复杂度,掌握递推式求解(主定理、递归树)及摊还分析(聚合、势能法),并引入概率分析应对随机输入。结合C语言实现,形成“分析什么、用何工具、量级多大、可处理多大n”的闭环能力,为后续数据结构与算法设计提供理论地基。
2026-10-13 18:46:05
385
原创 Python 词法结构
Python 词法结构规定源代码在进入语法分析之前,如何从字符序列形成词法单元,并确定源文件编码、行结构、缩进、注释、标识符、关键字、字面量、运算符和分隔符等基本形式。
2026-10-11 13:32:59
151
原创 数据的表示与运算
本文系统阐述计算机中数据的二进制表示与运算基础,涵盖进位计数制原理、常用进制(二、八、十、十六进制)及其相互转换方法,重点介绍按权展开、除基取余、乘基取整及分组法等转换技巧。结合硬件实现需求,解析二进制在物理层的优越性,并简要引入奇偶校验、海明码与CRC等校验机制,为理解计算机底层数据处理提供理论支撑。
2026-10-10 14:39:03
168
原创 计算机系统概述
2005年后主频停滞因功耗墙突破,迫使计算机转向多核与异构计算。Cache分层(L1/L2/L3)以平衡速度、容量与功耗。FPGA兼具硬件并行性与软件可编程性,实现灵活加速。本章揭示计算机系统演进的三大规律:瓶颈转移、性能驱动转向、物理约束(速度、功耗、面积)的永恒博弈,为理解现代体系结构奠定基础。
2026-10-10 14:20:48
332
原创 JavaScript 函数
本文系统讲解 JavaScript 函数:声明/表达式/箭头/方法/生成器/async 六种形态、参数与默认值、剩余参数与 arguments 的映射关系、this 绑定规则与优先级、call/apply/bind(含 new 穿透)、闭包与 IIFE、回调与高阶函数、纯函数、递归与记忆化、尾调用 PTC、柯里化、防抖节流、new.target。聚焦 ECMA-262 语言层,纠正"箭头函数没有 arguments""fn.length 就是形参个数"等常见误区。
2026-10-09 12:00:46
698
原创 JavaScript 控制流
本文系统讲解 JavaScript 控制流:if...else 与大括号陷阱、switch 的严格相等与 fall-through、while/do...while/for、for...in 与 for...of 的区别与迭代协议、break/continue 与标签语句、return 与 throw、可选捕获绑定。聚焦 ECMA-262 语言层,纠正"用 for...in 遍历数组""缓存 arr.length 提速"等常见误区。
2026-10-09 11:57:24
237
原创 变量作用域与提升
本文系统讲解 JavaScript 变量作用域与提升:var/let/const 绑定语义、TDZ、提升机制、作用域链、闭包、变量遮蔽、globalThis 与模块作用域。聚焦 ECMA-262 语言层,纠正常见误区,附「易错点速查」表。
2026-10-08 13:31:46
254
原创 JS类型系统
本文系统讲解 JavaScript 类型系统:7 种原始值类型、抽象操作与类型转换、== 与 ===、typeof 与 instanceof、BigInt 混用规则、Symbol 强制转换、自动装箱。聚焦 ECMA-262 语言层,纠正常见误区。
2026-10-08 13:03:17
533
原创 词法与基本语法
本文系统讲解 JavaScript 词法与基本语法:Unicode 字符集、转义序列、注释规范(含 JSDoc)、各类字面量,以及标识符、关键字与保留字、语句与声明、ASI 自动分号插入、严格模式。聚焦 ECMA-262 语言层,纠正大量常见误区。
2026-10-07 18:50:18
3352
49
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅