数组(顺序存储)基本原理
本章讲解数组的底层原理,区分静态数组与动态数组。静态数组是连续内存空间,支持O(1)随机访问,但增删效率低;动态数组基于静态数组封装,提供自动扩容与常用API,使用更便捷。我们将手动实现动态数组的增删查改,深入理解其运行机制,为后续学习栈、队列等结构打基础。
数据库
本内容系统讲解MySQL核心知识,涵盖char与varchar区别、事务ACID特性及隔离级别、索引结构(B+树)、聚簇与二级索引、回表查询、索引创建与失效场景,并结合explain执行计划、慢SQL定位及SQL优化实践,全面解析数据库性能调优关键点。
动态数组代码实现
本文详解动态数组的实现要点:支持自动扩缩容(2倍扩容、1/4缩容)、索引越界检查(区分元素与位置索引)、防范内存泄漏(删除时置null)。代码涵盖增删查改基本操作,帮助理解底层原理与时间复杂度。
链表(链式存储)基本原理
本文介绍了单链表与双链表的基本结构及操作。相比力扣中简单的单链表,实际编程中的链表多为支持泛型的双链表,具备prev和next指针,可双向遍历。链表无需连续内存,增删高效,无容量限制,但不支持随机访问。文章详解了链表的查、改、增、删操作,尤其通过虚拟头节点简化边界处理,并对比单双链表差异,为后续实现完整链表API打下基础。
MongoDB索引知识
MongoDB索引提升查询效率,避免全表扫描。支持单字段、复合、地理空间、文本及哈希索引,采用B-Tree结构,优化相等匹配、范围查询与排序操作。合理使用索引可显著提升性能。
08 | 索引构建:搜索引擎如何为万亿级别网站生成索引?
针对超大规模数据场景,如搜索引擎需处理万亿级网页,倒排索引远超内存容量。解决方案是:先将文档分批,在内存中为每批构建小型倒排索引,再写入磁盘生成有序临时文件;最后通过多路归并技术合并临时文件,生成全局有序的最终倒排文件。此过程类似MapReduce思想,支持分布式加速。检索时,优先将词典加载至内存(可用哈希表或B+树),结合磁盘上的posting list进行高效查询,对过长的列表可采用分层索引或缓存优化。
测一测丨检索算法基础,你掌握了多少?
本节讲解常见数据结构的查询效率与适用场景,涵盖数组、链表、二叉检索树、跳表、哈希表、位图、布隆过滤器及倒排索引。重点分析时间空间代价、平衡性、冲突处理及实际应用,如哈希表不适合查询具体值,倒排索引适用于多维度检索等。