加载中…
240 篇教程 · 系统学习算法与数据结构的原理与实现
堆排序(Heap Sort)是利用堆这种数据结构设计的排序算法。它是选择排序的改进版,通过维护最大堆(或最小堆)逐步取出极值,实现 O(n log n) 的原地...
基于比较的排序(快排、归并、堆排)有一个理论下界:Ω(n log n)。
归并排序(Merge Sort)是一种基于分治思想的高效排序算法。其核心思想包括以下几个步骤:
虽然工程中很少直接使用 O(n²) 排序,但它们是:
快速排序(Quick Sort)是一种高效的排序算法,由托尼·霍尔(Tony Hoare)于1960年提出。它基于分治法(Divide and Conquer)...
本篇对所有主流排序算法进行横向对比,帮助你在面试中快速选择正确的排序策略。
希尔排序(Shell Sort)是插入排序的改进版本,也称为缩小增量排序。它通过将数组分割成若干子序列进行插入排序,逐步缩小间隔,最终完成全局有序。由 Dona...
二分答案不是在一个数组里找某个值,而是在答案的可能范围内二分,通过一个验证函数(check)判断当前猜测是否可行,从而逐步缩小答案范围。
二分查找(Binary Search) 是一种在有序数组中查找目标元素的搜索算法。它通过每一步将搜索区间缩小一半,达到 O(log n) 的时间复杂度。
二分答案是一种将"求最优值"问题转化为"判定可行性"问题的通用技巧。只要答案具有单调性(满足/不满足某条件),就可以用二分将 O(n) 的搜索优化为 O(log...
线性查找(Linear Search)是最基础的搜索算法,也是理解所有高级搜索策略的起点。本篇从线性查找出发,梳理搜索算法的完整谱系。