存储

首页 标签 存储
# 存储 #
关注
192959内容
|
5天前
|
局域网电脑管理中的JavaScript哈希表算法实践
本文探讨哈希表在局域网电脑管理中的应用,基于JavaScript与Node.js实现高效设备信息存储与查询。通过MAC地址哈希映射,支持快速增删改查与动态扩容,显著提升大规模设备管理性能,附可运行代码示例。
队列/栈基本原理
本文介绍栈和队列的基本原理。二者均为操作受限的数据结构:队列仅能在队尾入队、队头出队,遵循“先进先出”(FIFO);栈则只允许在栈顶进行插入和删除,遵循“先进后出”(FILO)。底层多用数组或链表实现。
单/双链表代码实现
本文详解双链表与单链表的自定义实现,重点讲解三个核心技巧:同时持有头尾节点引用以优化操作效率、使用虚拟头尾节点简化边界处理、避免内存泄漏的良好编程习惯。代码涵盖增删查改基本操作,适合掌握链表原理后深入学习实际开发中的链表应用。
用拉链法实现哈希表
本文详解哈希表中拉链法的实现原理,通过简化版与完整版Java代码,介绍如何用链表解决哈希冲突,支持泛型、动态扩容及增删查改操作,帮助深入理解哈希表底层机制。
链表(链式存储)基本原理
本文深入讲解链表数据结构,对比力扣中的单链表与编程语言标准库中的双链表差异,涵盖泛型支持与双向指针特性。剖析链表内存分散存储、动态扩容的优势及索引访问的局限性,并通过代码详解单/双链表的增删查改操作,引入虚拟头结点优化边界处理,帮助读者掌握链表核心原理与实现技巧。
哈希表核心原理
哈希表不等于Map。Map是键值映射的抽象接口,哈希表(如HashMap)是其基于数组和哈希函数的具体实现之一。增删查改O(1)的性能依赖于哈希函数效率与冲突处理,而Map其他实现(如TreeMap)复杂度可能为O(logN)。需注意哈希冲突、扩容、负载因子及key不可变性等核心问题。
应用架构图
在业务架构基础上,技术架构将需求转化为技术实现。涵盖分层设计、技术选型与关键技术关联,包括单体四层结构(表现、业务、数据、基础层)与分布式SOA架构,明确应用内外调用关系及边界,形成完整技术体系蓝图。(238字)
04 | 状态检索:如何快速判断一个用户是否存在?
本文探讨如何高效判断对象是否存在,对比有序数组、二叉树、哈希表的查询性能,引出位图与布隆过滤器。位图利用数组按位存储,空间效率高;布隆过滤器通过多哈希函数映射到位数组,实现O(1)查询,虽存在误判但省空间,适用于注册去重、爬虫判重等场景。删除问题可通过引用计数或重建解决。
数组(顺序存储)基本原理
本章讲解数组的底层原理,区分静态数组与动态数组。静态数组是连续内存空间,支持O(1)随机访问,但增删效率低,需搬移数据;通过手动实现动态数组,理解其扩容、插入、删除等操作的实现逻辑与时间复杂度,为后续数据结构打下基础。
时间空间复杂度入门
本文介绍时间与空间复杂度入门知识,用Big O表示法(如O(1)、O(n)、O(n²))估算算法性能。复杂度关注最坏情况,越小越好。时间复杂度常由循环嵌套层数决定,空间复杂度看额外内存占用。结合多个代码示例,帮助初学者快速理解算法效率评估基础。
免费试用