数据结构与算法笔记
文章平均质量分 97
整理常见数据结构与算法的核心原理与实现,涵盖数组、链表、栈、队列、树、图、哈希表等基础结构,以及排序、查找、动态规划、贪心等经典算法,附多语言实现与复杂度分析,便于系统复盘与求职准备。
Halcyon.平安
接纳平凡,亦是一种通透
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【算法】LeetCode 704——二分查找 & 在排序数组中查找元素的第一个和最后一个位置
本文通过两个经典题目讲解了二分查找的基础用法和进阶应用,在实现过程中需要注意边界条件的处理,比如整数溢出、死循环等问题。二分查找的思想不仅适用于简单的元素查找,还能扩展到查找边界、寻找旋转点等场景,掌握好二分查找对算法学习至关重要。希望本文能帮助你更好地理解和运用二分查找算法。原创 2025-12-20 17:08:21 · 14676 阅读 · 64 评论 -
【数据结构与算法】—算法复杂度
本文介绍了数据结构与算法复杂度的基本概念,重点讨论了时间复杂度和空间复杂度的定义及其计算方法。时间复杂度通过函数式T(N)衡量算法的运行快慢,而空间复杂度则衡量算法运行所需的额外空间。文章通过具体代码示例,展示了如何计算和优化时间复杂度和空间复杂度,并介绍了大O渐进表示法在实际中的应用。最后,通过一道力扣题目的分析,展示了如何通过优化算法来减少时间复杂度和空间复杂度,强调了学习、思考和练习在算法优化中的重要性。原创 2025-05-09 00:09:33 · 1242 阅读 · 0 评论 -
【数据结构与算法】—顺序表和链表(1)
线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。原创 2025-05-09 13:55:14 · 552 阅读 · 1 评论 -
【数据结构与算法】—顺序表(续)
关于顺序表的头插,尾删,头删,指定位置前插入,指定位置删除,以及查找,顺序表的销毁。原创 2025-05-11 15:28:23 · 680 阅读 · 3 评论 -
【数据结构与算法】——单链表(上)
关于单链表的的解释以及尾插,头插,尾删,头删的讲解。原创 2025-05-12 11:58:35 · 1006 阅读 · 2 评论 -
【数据结构与算法】——单链表(下)
单链表的查找,指定位置之前、之后结点的插入,指定位、指定位之后结点的删除,单链表的销毁。原创 2025-05-16 15:58:04 · 1126 阅读 · 4 评论 -
【数据结构与算法】——双向链表
双向链表的定义,初始化,打印,尾插,头插,尾删,头删,查找,指定位置前插入,指定位置后插入,删除指定位置结点,销毁的实现,以及顺序表与链表的分析。原创 2025-05-17 23:06:25 · 1110 阅读 · 2 评论 -
【数据结构与算法】——栈和队列
栈和队列的概念结构和功能的实现。原创 2025-05-18 15:00:10 · 890 阅读 · 5 评论 -
【数据结构与算法】——堆
树是一种非线性数据结构,由有限结点组成,具有层次关系。树的基本概念包括根结点、子树、父结点、子结点等。树的表示方法有多种,如孩子兄弟表示法,常用于存储树结构。二叉树是树的一种特殊形式,每个结点最多有两个子结点,分为左子树和右子树。二叉树有满二叉树和完全二叉树两种特殊形式。二叉树的存储结构包括顺序结构和链式结构,顺序结构适合完全二叉树,链式结构则通过链表表示。堆是一种特殊的二叉树,具有完全二叉树的性质,常用于实现优先队列。堆的实现包括向上调整算法和向下调整算法,分别用于插入和删除数据时维护堆的性质。原创 2025-05-21 23:47:44 · 1166 阅读 · 1 评论 -
【数据结构与算法】——链式二叉树
本文介绍了链式二叉树的遍历方式与实现方法。主要内容包括: 三种基本遍历方式:前序遍历(根-左-右)、中序遍历(左-根-右)、后序遍历(左-右-根),并提供了递归实现代码; 二叉树基本操作:计算结点总数、叶子结点数、第k层结点数、树的高度、查找指定值结点等; 二叉树的销毁方法和注意事项; 递归的思想与应用,包括递归的限制条件和执行过程。 通过代码示例和图解展示了各种操作的实现细节,帮助理解二叉树的结构特点和递归处理方式。原创 2025-05-24 16:53:18 · 1129 阅读 · 5 评论
分享