INTERACTIVE ALGORITHM LAB · PYTHON

排序算法,一眼看懂

7 种常见算法,逐步动画、速度调节、手动输入数字、通俗讲解、完整 Python 实现。重点理解「每一步在做什么」,而不是死记代码。

校招 / 笔试 / 面试单步调试完全离线使用Python 源码

01 · 选择排序算法

点击切换,观察相同数据怎样排序

排序动画

初始序列:5, 3, 8, 4, 2, 7, 1, 6
待处理比较中交换基准 / 写入已确定
此刻发生了什么?
准备开始0 / 0
速度
02 · PYTHON SOURCE

Python 实现

所有实现都返回一个新的升序列表,不会修改原数据;实际业务建议优先使用 sorted(nums) 或 nums.sort()。

03 · 一张表快速区分

算法一句话原理平均时间最坏时间额外空间稳定性
冒泡排序相邻比较并交换O(n²)O(n²)O(1)是
选择排序每轮选最小的放前面O(n²)O(n²)O(1)否
插入排序把新元素插入有序区O(n²)O(n²)O(1)是
快速排序基准分区,再递归两边O(n log n)O(n²)平均 O(log n)否
归并排序拆半排序,再有序合并O(n log n)O(n log n)O(n)是
堆排序每轮把堆顶最大值取出O(n log n)O(n log n)O(1)否
计数排序统计整数次数后定位O(n+k)O(n+k)O(n+k)可稳定

注意:本页面的快速排序固定选最后一个元素为基准,因此已排序、逆序等输入可能退化为 O(n²)。计数排序只适用于整数,尤其适合数值范围较小的数据。

离线交互教材 · 算法过程可拖动、回退与重复播放 · 无需联网