算法
文章平均质量分 92
Yvonne爱编码
up立志做全栈开发,目前在学习后端和算法,会定时分享学习笔记,欢迎大家前来讨论,共同进步啊!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深度优先搜索(DFS)与广度优先搜索(BFS)在迷宫问题中的实现与对比
本文对比了深度优先搜索(DFS)和广度优先搜索(BFS)在迷宫问题中的应用。DFS采用栈结构实现,空间效率高但可能找不到最短路径;BFS使用队列,能保证最短路径但内存消耗较大。通过具体代码实现和路径对比分析,展示了两种算法的特点:DFS路径迂回(10步),BFS路径更直(同样10步但更优)。文章建议DFS适合路径存在性验证和内存敏感场景,BFS适用于最短路径需求。最后指出实际应用中应根据具体需求(路径长度、内存限制)选择合适的算法,并提供了典型应用场景参考。原创 2025-10-09 01:47:43 · 970 阅读 · 0 评论 -
【万字长文】从零掌握支持向量机(SVM):详解与实战指南
这篇文章介绍了支持向量机(SVM)的基本原理与应用实验。SVM是一种监督学习算法,通过寻找最优超平面实现分类,具有处理高维数据和非线性问题的优势。文章详细解析了硬间隔SVM、软间隔SVM和核技巧的数学原理,并进行了可视化实验比较不同核函数在月亮形、圆形和云团形数据集上的表现。实验结果表明:线性核适合简单线性可分数据,多项式核能处理部分非线性数据,RBF核最通用且效果最好,Sigmoid核在特定场景下有用。文章建议初学者先理解核心概念,通过可视化理解SVM工作原理,并推荐在不确定数据分布时优先尝试RBF核函数原创 2025-10-09 01:34:11 · 1525 阅读 · 0 评论 -
算法笔记之归并排序
本文介绍了归并排序算法及其特性。归并排序采用分治策略,将数组递归拆分为子数组直到单个元素,然后合并有序子数组。其时间复杂度稳定为O(nlogn),空间复杂度O(n),是一种稳定排序算法。文章详细说明了算法步骤、示例、伪代码,并重点分析了排序的稳定性,包括稳定排序的定义、重要性、验证方法和应用场景。此外,还对比了常见稳定/不稳定排序算法,总结了归并排序的优缺点及适用场景,特别适合需要稳定排序的大规模数据处理。原创 2025-07-23 20:33:51 · 1219 阅读 · 0 评论 -
算法笔记之堆排序
堆排序是一种基于二叉堆的高效排序算法,时间复杂度为O(nlogn)。它首先将无序数组构建成最大堆,然后通过反复交换堆顶元素与末尾元素并调整堆来实现排序。算法包含三个关键步骤:堆调整(维护堆性质)、建堆(从非叶子节点开始调整)和排序阶段(反复提取最大值)。堆排序是原地排序,不需要额外空间,特别适合大规模数据。C语言实现展示了堆调整、建堆和排序的具体操作,通过递归确保子树满足堆性质。最后分析了建堆O(n)和排序O(nlogn)的时间复杂度,强调了算法的高效性和空间优势。原创 2025-07-22 23:50:04 · 968 阅读 · 0 评论 -
算法-比较排序
本文介绍了6种常见比较排序算法:梳排序(改进冒泡排序,平均O(n²))、堆排序(利用堆结构,O(nlogn))、归并排序(分治合并,稳定O(nlogn))、快速排序(基于pivot划分,平均O(nlogn))、内省排序(结合快排和堆排)以及Timsort(归并+插入优化,适合现实数据)。通过示例数组[8,4,1,3,2,7,6,5]演示各算法执行过程,最终均输出有序结果[1,2,3,4,5,6,7,8]。文章对比了各算法的时间复杂度、稳定性和适用场景,可作为算法学习参考笔记。原创 2025-07-21 19:31:44 · 1195 阅读 · 0 评论 -
为什么比较排序算法的时间复杂度下界是 Ω(n log n)?
本文系统分析了比较排序算法的时间复杂度下界Ω(nlogn)的数学原理。通过决策树模型证明,任何基于比较的排序算法在最坏情况下必须进行至少O(nlogn)次比较。文章详细解释了Ω(nlogn)的含义、决策树模型的概念、时间复杂度下界的推导过程(包括斯特林公式的应用),并讨论了为何部分算法如Timsort能突破这一限制。同时对比了常见排序算法的最坏比较次数,通过练习题目加深理解,最终得出比较排序算法效率的理论极限,并指出优化方向在于减少常数因子或利用数据特性。原创 2025-07-21 18:57:10 · 951 阅读 · 0 评论 -
计算矩阵的鞍点个数
本文简单介绍了数组中的鞍点概念,总结了两种解法,对于部分概念进行了更细节的描述和补充,欢迎大家指正和讨论原创 2025-05-07 18:46:59 · 1374 阅读 · 1 评论
分享