好的,我来给你整理一个 十大经典排序算法概览,并附上动图演示说明它们的核心思想和特点,方便理解。


十大经典排序算法(附动图演示)

下表展示排序算法名称、时间复杂度、空间复杂度以及核心思路,同时给出对应的动画示意(示意图可用 GIF 或网页动画)。

序号排序算法时间复杂度空间复杂度核心思路动图演示
1冒泡排序(Bubble Sort)O(n²)O(1)相邻元素两两比较,大的元素逐渐“浮”到右侧bubble
2选择排序(Selection Sort)O(n²)O(1)每次从未排序部分选择最小元素放到已排序末尾selection
3插入排序(Insertion Sort)O(n²)O(1)将元素插入已排序序列中,保持有序insertion
4希尔排序(Shell Sort)O(n log n) ~ O(n²)O(1)插入排序升级版,先分组再插入排序,减少移动次数shell
5归并排序(Merge Sort)O(n log n)O(n)分治法,将数组递归拆分,再合并排序merge
6快速排序(Quick Sort)O(n log n) 平均O(log n) 递归栈选择基准元素,将数组分成小于和大于基准两部分,递归排序quick
7堆排序(Heap Sort)O(n log n)O(1)利用二叉堆结构,每次取最大/最小元素放到末尾heap
8计数排序(Counting Sort)O(n+k)O(k)统计每个元素出现次数,再按次数排列counting
9桶排序(Bucket Sort)O(n+k)O(n+k)将数据分到不同桶,再对每个桶排序,最后合并bucket
10基数排序(Radix Sort)O(nk)O(n+k)按位(个位、十位…)对元素排序,稳定排序radix

1️⃣ 动图说明

  • 冒泡、插入、选择排序 → 基本排序思想,适合学习和小数据量。
  • 归并、快速、堆排序 → 高效通用排序,适合大数据。
  • 计数、桶、基数排序 → 非比较排序,对整数/特定场景性能非常高。

2️⃣ 小结

  • 稳定排序:冒泡、插入、归并、计数、基数 → 保留相等元素相对位置
  • 不稳定排序:选择、快速、堆排序
  • 时间复杂度
    • 最优:O(n log n) → 快速、归并、堆
    • 平均:O(n log n)
    • 最差:O(n²) → 冒泡、插入、选择
  • 空间复杂度
    • 原地排序:冒泡、选择、插入、快速、堆
    • 需要额外空间:归并、计数、桶、基数