七大排序算法终极速查手册

张开发
2026/4/19 20:33:29 15 分钟阅读

分享文章

七大排序算法终极速查手册
一、先回顾我们学过哪些排序从 day21day23 学了7 种排序分为两类O (n²) 简单排序冒泡排序选择排序插入排序O (n log n) 高效排序希尔排序快速排序归并排序堆排序二、一张表记住所有排序面试必背表格排序最好时间最坏时间平均时间空间稳定关键词冒泡O(n)O(n²)O(n²)O(1)✅ 稳定两两交换、冒泡选择O(n²)O(n²)O(n²)O(1)❌ 不稳定选最小放前面插入O(n)O(n²)O(n²)O(1)✅ 稳定摸牌、插有序区希尔O(n log n)O(n²)O(n log n)O(1)❌ 不稳定分组插入、gap 递减快排O(n log n)O(n²)O(n log n)O(log n)❌ 不稳定基准 pivot、分治归并O(n log n)O(n log n)O(n log n)O(n)✅ 稳定分治、合并、外部排序堆排O(n log n)O(n log n)O(n log n)O(1)❌ 不稳定大顶堆、下沉三、高频面试问答直接背1. 什么是稳定排序有什么用稳定相等的元素排序后相对顺序不变用途多关键字排序先按班级排再按分数排2. 最快的通用排序是什么快速排序实际工程中最快。3. 空间最少的 O (n log n) 排序堆排序O (1) 额外空间。4. 链表排序首选什么归并排序因为链表不支持随机访问快排、堆排不方便。5. 什么时候用插入排序数据基本有序或数据量很小时极快。6. 快排最坏情况是什么怎么优化最坏数组已经有序退化成 O (n²)优化三数取中left, mid, right 选中间值做 pivot小数组用插入排序尾递归优化四、极简速记口诀小数据、近乎有序 →插入追求稳定 →归并、插入、冒泡追求速度、不在乎稳定 →快排内存紧张 →堆排笔试写代码 →快排 / 归并最容易加分五、今日小练习综合自测数组[5, 2, 9, 1, 7, 3, 6, 8, 4]用快速排序实现用归并排序实现说出它们的复杂度、稳定性、空间开销

更多文章