索引

首页 标签 索引
# 索引 #
关注
67130内容
哈希表核心原理
哈希表不等于Map。Map是键值映射的接口,哈希表是其实现之一。本文详解哈希表原理:通过哈希函数将key映射到数组索引,实现O(1)增删查改;探讨哈希冲突的拉链法与线性探查法、负载因子与扩容机制,并澄清常见误区如遍历顺序无序、循环中修改风险等。
用拉链法实现哈希表
本文详解哈希表中拉链法的实现原理,通过简化版到完整版代码,介绍如何用链表解决哈希冲突。支持泛型、动态扩容缩容、键值增删查改及遍历所有key,结合Java内置LinkedList优化实现,直观展示哈希表核心机制。
二叉树基础及常见类型
二叉树是数据结构的核心,不仅是红黑树、堆、图等的基础,更体现了递归思维。掌握二叉树,等于掌握算法与数据结构的关键。本文详解满二叉树、完全二叉树、二叉搜索树及其实现方式,助你彻底理解其原理与应用,为后续算法学习打下坚实基础。
链表(链式存储)基本原理
本文介绍链表的基本概念与操作,对比力扣中的单链表与编程语言标准库中更复杂的双链表。链表通过指针连接分散的内存块,支持高效增删,无需连续空间和扩容,但不支持随机访问。文中详解单链表的创建、遍历、头尾及中间插入等操作,并简述双链表优势。
学习数据结构和算法的框架思维
本文系统总结数据结构与算法本质:所有数据结构皆源于数组和链表,核心操作为遍历与访问;算法本质是穷举,关键在于无遗漏、无冗余。文章提炼出通用框架,帮助读者建立计算机思维,掌握高效解题方法,适合初学者建立全局观,也适合进阶者温故知新。
环形数组技巧
环形数组通过逻辑设计,利用取模运算将线性数组首尾相连,形成循环结构。借助start和end双指针(左闭右开区间),在O(1)时间内实现头尾元素的增删。虽底层仍是线性内存,但通过指针移动与模运算,避免了频繁数据搬移,提升了效率。常用于队列、缓冲区等场景。
数组(顺序存储)基本原理
本章讲解数组的底层原理,区分静态数组与动态数组。静态数组是连续内存空间,支持O(1)随机访问,但增删效率低,需搬移数据或扩容;动态数组在此基础上封装常用API。我们将手动实现动态数组的增删查改,理解其运行机制,为后续学习栈、队列等结构打基础。
|
2月前
|
局域网监控电脑屏幕之跳表数据结构Node.js语言算法探究
本文探讨跳表数据结构在局域网监控电脑屏幕系统中的应用,结合Node.js实现高效时序数据存储与查询。跳表以O(log n)平均复杂度支持高并发插入、区间检索,适配监控场景下的实时性与轻量化需求,为屏幕行为追溯、异常检测提供底层支撑。
免费试用