排序与查找专栏导览:从原理到 LeetCode 面试通关

专栏定位

本专栏面向有一定编程基础、正在备战技术面试的工程师。讨论范围严格限定于排序算法与查找算法两大主题,不涉及树、图、动态规划等其他领域。

目标:帮助读者真正理解排序与查找的底层原理,而非死记硬背套路。每道题的讲解遵循”是什么 → 为什么出现 → 不这样会怎样 → 如何落地 → 边界与反例”的推导链,力求通俗易懂而不失深度。


专栏目录

序号文章标题核心话题覆盖 LeetCode 题目
01排序算法原理全景:从 的演进之路排序算法分类、时空复杂度横向对比、稳定性分析、面试选型决策概念篇,无具体题目
02归并排序实战三连:有序数组与有序链表的合并艺术归并分治框架、双指针归并、原地归并的陷阱、多路归并优先队列Merge Sorted Array、Merge Two Sorted Lists、Merge k Sorted Lists
03链表排序双题精讲:插入排序与归并排序的链表实现链表插入排序的指针细节、链表归并排序(递归 + 迭代)、 空间约束Insertion Sort List、Sort List
04创意排序:荷兰国旗问题与桶排序思想三路快排思想、DNF 算法、鸽巢原理、桶的下界证明Sort Colors、First Missing Positive
05二分查找核心模板:从基础到左右边界锁定二分的四大模板、闭区间不变量、重复元素的左右边界Search Insert Position、Search for a Range
06二分查找的变体:旋转有序数组与有序矩阵旋转数组有序性分析、二维矩阵的 Z 字形搜索Search in Rotated Sorted Array、Search a 2D Matrix
07快速选择与 TopK 问题:期望 的奇妙算法快速排序分区、快速选择算法、最小堆 TopK、BFPRT 算法简介Kth Largest Element in an Array、Top K Frequent Elements
08排序在非排序题中的妙用:区间合并与会议室按端点排序、贪心区间合并、差分数组Merge Intervals、Meeting Rooms、Non-overlapping Intervals
09计数排序与基数排序:线性时间排序的边界与代价计数排序原理与限制、基数排序位权展开、桶排序的稳定性Maximum Gap、H-Index
10排序与查找综合通关:面试高频模式总结模式识别、算法选型决策树、复杂度速查、常见错误盘点综合复习篇

专栏阅读建议

  1. 第 01 篇必读:理解各排序算法的”性格特点”,后续题目的解法选型才有根基
  2. 排序篇(02-04、08-09):重点理解每道题为何选用当前排序算法,而非强行套模板
  3. 查找篇(05-06):二分查找的核心在于不变量维护,建议先在纸上推导边界条件再看代码
  4. 进阶篇(07):快速选择是高频面试考点,理解其与快速排序的关系是关键
  5. 本专栏不覆盖:哈希表查找(不属于线性时间有序查找范畴)、树形结构的搜索、图算法

复杂度速查表

算法最好平均最坏空间稳定
冒泡排序
插入排序
选择排序
归并排序
快速排序
堆排序
计数排序
基数排序
桶排序
二分查找