
数据结构与算法
文章平均质量分 96
数据结构从入门到精通。
吴师兄大模型
计算机硕士。
研究方向:知识图谱、自然语言处理(NLP)与大模型技术。
擅长理论剖析与实战应用,致力于分享高质量人工智能学习资源。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构与算法-Day 11】从循环链表到约瑟夫环,一文搞定链表的终极形态
我们将从循环链表的基本概念和结构出发,深入探讨其与普通链表的异同,并详细讲解如何通过“快慢指针法”判断链表是否带环。本文的核心将聚焦于一个经典的算法问题——约瑟夫问题,并通过循环链表给出清晰的解题思路与完整的代码实现。最后,我们将对数组和链表这两大基础线性结构进行一次全方位的终极对比,帮助你彻底理解它们的优劣势与适用场景,为未来的技术选型打下坚实基础。原创 2025-08-02 19:00:00 · 810 阅读 · 0 评论 -
【数据结构与算法-Day 10】一文搞懂双向链表的设计与操作(含图解与代码)
在掌握了单向链表之后,我们自然会思考:数据之间的链接只能是单向的吗?如果我们需要频繁地在链表中前后移动,或者在删除一个节点时能快速找到它的前驱节点,单向链表似乎就显得有些力不从心。为了解决这些问题,“双向链表”应运而生。本文将深入探讨双向链表的结构、核心优势,并通过图解和详细的代码示例,手把手教你实现其增删查改等核心操作。最后,我们会对比单向与双向链表的应用场景,助你理解其在实际开发中的价值。原创 2025-07-31 19:00:00 · 757 阅读 · 0 评论 -
【数据结构与算法-Day 9】图解单向链表:从基础遍历到面试必考的链表反转
本文作为单向链表核心操作的下篇,将聚焦于另外两个基础且至关重要的操作:**遍历(Traversal)** 与 **查找(Search)**。更重要的是,我们将攻克链表主题下最经典、最常在面试中出现的算法问题——**链表反转(Reversal)**。理解链表反转不仅能检验你对链表指针操作的掌握程度,更是提升算法思维能力的关键一环。本文将通过图解和代码,带你彻底征服这些核心操作。原创 2025-07-30 09:00:00 · 1008 阅读 · 0 评论 -
【数据结构与算法-Day 8】手把手带你拿捏单向链表:增、删、改核心操作详解
本文将作为【单向链表核心操作】的上篇,聚焦于链表中最基础、最核心的“写”操作:**增加(插入)**、**删除**和**修改**节点。我们将通过图文并茂的方式,深入剖析每种操作在不同场景下的原理和实现细节,并提供高质量、附带注释的代码示例。本文旨在帮助你彻底掌握链表的指针操作精髓,为你后续学习更复杂的算法打下坚实的基础。原创 2025-07-27 09:00:00 · 996 阅读 · 0 评论 -
07-【数据结构与算法-Day 7】告别数组束缚,初识灵活的链表 (Linked List)
在前面的文章中,我们学习了数组,一种强大且应用广泛的数据结构。然而,数组天生的“体质”——连续的内存空间和固定的大小,也给它带来了难以逾越的障碍,尤其是在处理动态数据和频繁增删的场景中。本文将带您认识一位新的“朋友”——链表(Linked List)。它通过一种“穿针引线”的巧妙方式,完美规避了数组的硬伤,提供了极高的插入和删除效率。本文将作为链表系列的开篇,从最基础的概念入手,为您揭开链表的神秘面纱,深入理解其核心构成:节点(Node)与指针(Pointer),并带您直观地感受单向链表的结构之美。原创 2025-07-25 09:00:00 · 913 阅读 · 0 评论 -
【数据结构与算法-Day 6】最朴素的容器 - 数组(Array)深度解析
数组(Array)是几乎所有编程语言中最基础、最核心的数据结构。它像一个整齐排列的储物柜,为我们提供了一种高效管理和访问数据的方式。本文将深入探讨数组的本质,从其定义与核心特性出发,重点剖析其底层内存布局如何造就了 $O(1)$ 的高效随机访问。同时,我们也将揭示为何数组的插入和删除操作相对低效,并结合具体代码实例和复杂度分析,帮助你彻底理解其工作原理。最后,文章还将指出使用数组时最常见的“陷阱”,为你扫清实践中的障碍。原创 2025-07-23 09:00:00 · 549 阅读 · 0 评论 -
【数据结构与算法-Day 5】实战演练:轻松看懂代码的时间与空间复杂度
本篇文章作为第一阶段的收官之作,将聚焦于“实战”,通过一系列精心挑选的代码案例,手把手带你分析真实场景下的时间与空间复杂度。本文旨在巩固你对复杂度分析的理解,打通理论与实践之间的壁垒,让你在面对任何代码时,都能迅速而准确地评估其性能,为后续学习更复杂的数据结构与算法打下坚实的内功基础。原创 2025-07-21 19:00:00 · 1596 阅读 · 0 评论 -
【数据结构与算法-Day 4】从O(1)到O(n²),全面掌握空间复杂度分析
本文将系统地介绍空间复杂度的概念、大O表示法,并通过丰富的代码示例和图示,带你分析常见的空间复杂度类型,包括 $O(1)$, $O(n)$, $O(n^2)$ 以及特殊的递归调用场景。最后,我们将讨论算法设计中永恒的话题:时间与空间的权衡,帮助你更全面地思考和设计高效的程序。原创 2025-07-15 19:00:00 · 1057 阅读 · 0 评论 -
【数据结构与算法-Day 3】揭秘算法效率的真相:全面解析O(n^2), O(2^n)及最好/最坏/平均复杂度
本文将作为上一篇的续集,带领大家继续深入探索更复杂的常见时间复杂度,包括 $O(n \\log n)$, $O(n^2)$, $O(2^n)$ 和 $O(n\!)$。更重要的是,我们将引入一个新的维度来审视算法性能:最好、最坏和平均情况时间复杂度,并简要介绍一个在工程实践中极具价值的概念——均摊时间复杂度。通过本文的学习,你将能更全面、更精准地评估算法在不同场景下的真实表现。原创 2025-07-14 19:00:00 · 723 阅读 · 0 评论 -
【数据结构与算法-Day 2】衡量代码的标尺:时间复杂度与大O表示法入门
如何科学地衡量一段代码的执行效率。这把“标尺”就是**复杂度分析**。本文作为上篇,将重点介绍时间复杂度的概念、大O表示法,以及如何分析推导最常见的三种时间复杂度:$O(1)$、$O(n)$ 和 $O(\\log n)$。掌握这些,你将能从源头判断代码的优劣,为写出高性能程序打下坚实基础。原创 2025-07-12 19:00:00 · 911 阅读 · 0 评论 -
【数据结构与算法-Day 1】程序世界的基石:到底什么是数据结构与算法?
文章将通过生动的类比和实际场景,深入浅出地阐释数据结构与算法的定义、它们之间密不可分的关系,并系统性地论述学习这两门知识对于程序员职业生涯的深远意义。无论你是编程新手,还是希望突破技术瓶颈的进阶者,本文都将为你铺设一条通往高效编程与深度思考的坚实道路。原创 2025-07-11 19:00:00 · 729 阅读 · 0 评论