数据结构算法学习
文章平均质量分 60
敲代码的嘎仔
顺天时,承因果,今日方知我是我!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构算法学习day5——链表
本文介绍了三种链表结构的实现:单向链表、双向链表和双向环形链表。在单向链表中,详细讲解了节点定义、增删改查等基本操作,并比较了普通实现与带哨兵节点实现的区别。双向链表部分展示了如何通过prev和next指针实现双向遍历,以及头尾哨兵节点的应用。最后,双向环形链表通过哨兵节点自指形成环形结构,实现了更高效的插入和删除操作。全文通过代码示例详细说明了各类链表的实现要点和操作逻辑,为理解链表数据结构提供了实用参考。原创 2025-11-24 12:41:32 · 117 阅读 · 0 评论 -
数据结构算法学习day4——数组
本文介绍了数组的基本概念及其在编程中的应用。数组是一种通过索引标识元素的连续存储数据结构,支持高效的随机访问(O(1)时间复杂度)。文章重点讲解了动态数组的实现,包括添加/删除元素时的容量检查和自动扩容机制(1.5倍增长),使用System.arraycopy进行元素移动。动态数组通过懒初始化优化内存使用,并在容量不足时自动扩容。最后简要提及了二维数组的概念。原创 2025-11-06 09:00:00 · 585 阅读 · 0 评论 -
数据结构算法学习day3——二分查找
本文介绍了二分查找算法的实现与优化。算法部分展示了两种Java实现:一种是传统二分查找,另一种优化了边界条件。针对常见问题进行了说明,包括区间选择、防止整数溢出、符号使用等。文章还讨论了算法评价标准,重点分析了时间复杂度的计算方法和表示方式(大O表示法)。最后展示了二分查找的扩展应用:寻找最左/最右侧元素,通过记录候选位置的方式实现了这一功能。这些实现都考虑了升序数组的特性,使用无符号右移运算符防止溢出,体现了对算法细节的深入思考。原创 2025-11-01 21:14:29 · 638 阅读 · 0 评论 -
数据结构算法学习day2——队列
本文介绍了队列的基本概念及其在银行排队系统等场景的应用。详细讲解了使用数组模拟队列的实现方法,包括初始化、判空判满、入队出队等操作。针对数组队列不可复用的问题,提出了环形队列的优化方案,通过取模运算实现队列空间的循环利用。文章包含完整的Java代码实现,演示了两种队列(普通数组队列和环形队列)的具体操作,并比较了它们的优缺点。环形队列通过调整front和rear指针的含义,有效解决了空间复用问题,提高了队列的实用性。原创 2025-10-28 12:35:02 · 574 阅读 · 0 评论 -
数据结构算法学习day1——稀疏数组
本文介绍了数据结构的基本分类和稀疏数组的应用。数据结构分为线性结构(如数组、链表、栈等)和非线性结构(如树、图等)。稀疏数组是一种用于存储大量重复值的优化方法,通过记录非零元素的位置和值来压缩存储空间。文章详细说明了二维数组与稀疏数组的转换过程,包括遍历原始数组、创建稀疏数组、存储非零元素等步骤,并提供了Java代码实现示例,展示了如何将棋盘数据转换为稀疏数组存储及恢复过程。原创 2025-10-24 14:18:08 · 399 阅读 · 0 评论
分享