李国强的技术博客
  • 首页
  • 算法专栏
  • 应用
    学习导航 在线工具
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链

Part 6.3:Z-Algorithm

Z-Algorithm 是一种强大的线性时间字符串处理算法,它能高效计算字符串与其所有后缀的最长公共前缀。本文将从 Z-array 的定义入手,为你深入剖析其线性时间计算的精妙之处——Z-box 的利用,并通过详尽的图示、动画式案例和 Python 实现,助你掌握这个在模式匹配等领域大放异彩的算法。
2025-11-16
大学算法全体系 > Part 6:字符串算法
#算法基础 #字符串 #模式匹配 #Z-Algorithm #Z-array

Part 3.5:二分查找:O(log n) 的有序搜索艺术

二分查找是在有序数组中进行高效搜索的经典算法。本文将深入讲解其 O(log n) 的原理、三种写法(左闭右闭、左闭右开、递归),并探讨其在查找边界、旋转数组等变体问题中的应用,助你彻底掌握这个面试必考算法。
2025-11-16
大学算法全体系 > Part 3:排序与查找算法
#算法 #二分查找 #Binary Search #O(log n) #查找算法

Part 6.2:Trie 树(字典树)

Trie 树(字典树)是处理字符串前缀问题的最高效数据结构。本文将从“自动补全”的直观场景入手,为你剖析 Trie 树如何利用空间换时间,实现对大量字符串的高效插入、查找和前缀搜索。通过详尽的图示、动画式案例和 Python 实现,助你掌握这一面试高频数据结构。
2025-11-16
大学算法全体系 > Part 6:字符串算法
#数据结构 #字符串 #Trie #字典树 #前缀树

Part 3.4:堆排序:原地 O(n log n) 的选择

堆排序结合了堆数据结构与排序算法,实现了原地 O(n log n) 排序。本文将讲解建堆过程、堆排序的两个阶段,以及其在时间和空间上的权衡。
2025-11-15
大学算法全体系 > Part 3:排序与查找算法
#算法 #堆 #堆排序 #Heap Sort #原地排序

Part 6.1:KMP 算法

KMP 算法是字符串模式匹配领域的革命性突破,实现了线性时间复杂度的查找。本文将从暴力匹配的低效性入手,为你深入剖析 KMP 的核心——next 数组(前缀函数)的原理与计算方法,并通过详尽的图示、动画式案例和 Python 实现,助你彻底掌握这一高效的字符串匹配算法。
2025-11-15
大学算法全体系 > Part 6:字符串算法
#算法基础 #字符串 #KMP #模式匹配 #next数组

Part 3.3:归并排序:稳定高效的分治典范

归并排序是唯一保证 O(n log n) 时间复杂度且稳定的比较排序算法。本文将深入讲解其"分解-合并"的分治思想、合并过程的实现细节,以及其在外部排序、逆序对计数等场景中的重要应用。
2025-11-15
大学算法全体系 > Part 3:排序与查找算法
#算法 #分治 #归并排序 #Merge Sort #稳定排序

Part 5.7:DP 总结与方法论

动态规划是算法学习中的重要一环,也是面试的高频考点。本文将对整个 DP 系列进行总结,为你提炼出学习和解决 DP 问题的通用方法论,包括如何识别 DP 问题、如何定义状态、如何推导状态转移方程,以及常见的 DP 优化技巧,帮助你建立起系统化的 DP 思维框架。
2025-11-15
大学算法全体系 > Part 5:动态规划
#动态规划 #DP #方法论 #算法总结

Part 3.2:快速排序:分治思想的经典应用

快速排序是实际应用中最常用的排序算法之一。本文将深入剖析其分治思想、分区(Partition)过程、三种优化策略(随机化、三路快排、尾递归),并讲解其平均 O(n log n)、最坏 O(n²) 的复杂度特性。
2025-11-15
大学算法全体系 > Part 3:排序与查找算法
#算法 #快速排序 #Quick Sort #分治 #O(n log n)

Part 5.6:状态压缩 DP

状态压缩 DP 是一种利用二进制位来表示和处理集合状态的强大技巧,专门解决涉及元素排列组合的优化问题。本文将以经典的旅行商问题(TSP)为例,为你剖析状态压缩 DP 的核心思想,手把手带你理解如何用位掩码(bitmask)定义状态,并通过位运算实现状态转移,助你掌握这一 DP 中的“屠龙技”。
2025-11-15
大学算法全体系 > Part 5:动态规划
#动态规划 #DP #状态压缩DP #位运算 #旅行商问题 #TSP

Part 3.1:基础排序算法:冒泡、选择与插入

排序是算法学习的经典起点。本文将深入讲解三种最基础的 O(n²) 排序算法——冒泡、选择和插入排序,通过动画式案例剖析其执行过程、优化技巧和适用场景,为学习高级排序算法打下坚实基础。
2025-11-15
大学算法全体系 > Part 3:排序与查找算法
#算法 #排序 #冒泡排序 #选择排序 #插入排序 #O(n²)

Part 5.5:树形 DP

树形 DP 是动态规划在树形结构上的巧妙应用。本文将以经典的“没有上司的舞会”(树的最大独立集)问题为例,为你剖析树形 DP 的核心思想——自底向上的状态转移,并通过 DFS(后序遍历)手把手带你实现状态定义、推导状态转移方程,助你攻克这一 DP 分支。
2025-11-15
大学算法全体系 > Part 5:动态规划
#算法基础 #动态规划 #DP #树形DP #树的最大独立集

Part 2.8:二叉搜索树:有序世界的高效查找

二叉搜索树(BST)通过巧妙的有序性,将查找、插入、删除的平均时间复杂度降至 O(log n)。本文将深入剖析 BST 的核心性质、三大操作的实现细节(尤其是复杂的删除操作),并讲解其退化问题及平衡树的引入,为你打开有序数据结构的大门。
2025-11-15
大学算法全体系 > Part 2:基础数据结构
#数据结构 #二叉搜索树 #BST #查找 #插入 #删除
12345

搜索

Hexo Fluid
总访问量 次 总访客数 人