数据结构与算法
文章平均质量分 96
专栏面向编程学习者、算法刷题者和求职备考人群,系统讲解数组、链表、栈、队列、哈希表、树、图、堆、排序、查找、递归、回溯、贪心、动态规划等核心知识。内容注重原理理解与题目实战结合,通过清晰的思路分析、代码实现和复杂度讲解,帮助读者建立完整的算法知识体系,提升逻辑思维、编程能力和解决实际问题的效率。
承渊政道
在校大三计算机科学与技术专业的一名大学生|热衷于C/C++、数据结构与算法、Linux系统、大模型基础语言、python、数据库、QT、测试、运维等领域学习|CSDN新星杯第20期TOP2|CSDN创作之星、编程达人|极星会KOL|擅长AI产品推广与文章测评,商务合作,学习交流可联系;希望我的博客能够给予你帮助!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一文彻底搞清楚数据结构之快速排序和归并排序的深入优化
本文介绍了快速排序和归并排序的优化方法,重点分析了快速排序性能的关键点及三路划分算法。文章指出快速排序性能取决于每次单趟排序后key对数组的分割情况,并提出当数组中有大量重复数据时,传统方法效率会下降。针对这一问题,详细讲解了三路划分算法的核心思想:将数组分为小于key、等于key和大于key三部分,并给出了相应的代码实现。通过对比hoare、lomuto和三路划分三种单趟排序方法在不同数据情况下的表现,展示了三路划分在处理重复数据时的优势。该优化方法能有效提升快速排序在特定场景下的性能表现。原创 2025-11-30 19:50:54 · 2204 阅读 · 138 评论 -
一文彻底搞清楚数据结构之排序算法大揭秘
摘要: 本文介绍了排序算法的基本概念和分类,重点讲解插入排序中的直接插入排序和希尔排序。直接插入排序通过逐个插入元素到有序序列实现排序,时间复杂度为O(N²)。希尔排序是其优化版本,通过分组插入和逐步缩小增量提高效率,时间复杂度优于直接插入排序。文章结合动图和代码示例,分析了两种算法的实现细节和性能特点,适用于不同场景的数据排序需求。 关键词: 排序算法、插入排序、希尔排序、时间复杂度、代码实现原创 2025-11-29 17:28:26 · 1717 阅读 · 114 评论 -
一文彻底搞清楚遍历二叉树和OJ算法题的暴力美学全面解析
本文介绍了链式二叉树的实现及相关算法操作。主要内容包括: 链式二叉树的创建方式,通过手动创建节点并建立连接关系; 二叉树的三种遍历方式(前序、中序、后序)及其递归实现; 计算二叉树结点个数、叶子结点个数等基本操作; 二叉树的高度计算、查找特定结点值以及销毁二叉树等操作。 文章通过代码示例和图解详细讲解了各算法的实现原理,帮助读者理解二叉树的递归特性。所有算法均采用递归方式实现,体现了二叉树"根-左-右"的递归结构特点。 关键词:链式二叉树、前序遍历、中序遍历、后序遍历、递归算法、二叉树原创 2025-11-23 18:56:48 · 1135 阅读 · 162 评论 -
一文彻底搞清楚二叉树和堆:从概念到存储结构解析
摘要 本文系统介绍了树和二叉树的基本概念与结构。首先阐述了树的非线性特征及其层次关系表示方法,重点分析了树的基本术语(如度、层次、路径等)和三种存储结构(双亲表示法、孩子表示法、孩子兄弟表示法)。随后详细讲解了二叉树的特殊性质,区分了满二叉树和完全二叉树两种特殊形态,并推导了二叉树的重要性质公式。最后简要说明了二叉树的顺序存储结构,为后续树形结构的学习奠定了基础。全文通过丰富的图示和术语解释,帮助读者建立对树形数据结构的系统认知。原创 2025-11-16 21:33:58 · 2067 阅读 · 94 评论 -
一文彻底搞清楚数据结构之栈与队列:从定义到实战解析
本文介绍了栈和队列这两种线性表结构。栈遵循"后进先出"(LIFO)原则,仅允许在栈顶进行插入和删除操作;队列则遵循"先进先出"(FIFO)原则,允许在队尾插入、队头删除。文章详细说明了栈的顺序存储和链式存储结构,并介绍了多栈共享空间以提高空间利用率的方法。同时给出了栈的具体代码实现(包括初始化、入栈、出栈等操作),以及队列的顺序存储结构示意图。这两种数据结构在计算机科学中应用广泛,是学习算法和程序设计的重要基础。原创 2025-11-13 22:13:33 · 1409 阅读 · 53 评论 -
一文彻底搞清楚链表算法实战大揭秘和双向链表实现
本文摘要主要介绍了链表相关算法题的实现思路和代码解析。重点包括: 移除链表元素:给出两种解法,一种是直接处理头节点和遍历删除,另一种是创建新链表筛选元素,时间复杂度均为O(N)。 反转链表:提供头插法和三指针法两种实现,通过指针操作完成链表反转。 寻找链表中点:演示了计算长度遍历和快慢指针两种方法,快慢指针法更高效。 合并有序链表:使用哨兵节点简化边界处理,通过指针遍历实现有序合并。 文中对每个算法都给出了详细代码实现和复杂度分析,展现了链表操作的多种技巧,适合数据结构学习者参考实践。原创 2025-11-08 15:56:42 · 2013 阅读 · 52 评论 -
一文彻底搞清楚数据结构之链表
本文介绍了单链表的基本概念和实现方法。单链表是一种非连续、非顺序的线性存储结构,通过指针链接实现数据元素的逻辑顺序。文章详细讲解了单链表的定义、结点组成(数据域和指针域)、链表的逻辑连续性以及物理存储特性。 通过代码示例展示了单链表的基本操作: 链表创建和初始化 链表打印(遍历) 头插和尾插操作(O(1)和O(N)时间复杂度) 头删和尾删操作 指定位置前插入数据 文中使用形象的火车车厢比喻帮助理解链表的动态特性,并对比了链表与顺序表在增删操作上的时间复杂度差异。这些实现为解决顺序表增删时间复杂度高、空间浪费原创 2025-11-06 11:40:59 · 1627 阅读 · 45 评论 -
一文彻底搞清楚数据结构之顺序表
摘要 本文介绍了数据结构中的线性表和顺序表概念。线性表是n个具有相同特性数据元素的有限序列,其逻辑结构为线性但物理结构不一定连续。顺序表采用顺序存储结构,底层基于数组实现。文章详细对比了静态与动态顺序表的区别,并提供了动态顺序表的核心操作实现代码,包括初始化、头尾增删、指定位置增删等。每种操作都标注了时间复杂度,如尾插O(1)、头插O(N)等,通过图示直观展示数据移动过程。最后提出思考题,引导读者延伸思考指定位置后插入的实现方法。原创 2025-11-02 16:54:51 · 1384 阅读 · 36 评论 -
算法复杂度
本文主要介绍了数据结构与算法的基础概念,重点讲解了算法效率的衡量方法——时间复杂度和空间复杂度。文章首先通过一个轮转数组的案例引出时间复杂度的重要性,解释了为什么需要理论计算而非实际运行时间评估算法效率。随后详细阐述了时间复杂度的定义、计算规则(大O表示法)及其应用示例,强调在分析算法时需关注增长量级而非精确执行次数。通过多个代码示例演示了如何推导不同算法的时间复杂度,帮助读者理解数据结构与算法的核心评估标准。原创 2025-10-28 23:26:28 · 1569 阅读 · 17 评论
分享