ANATOMY / 原理实验室

排序,逐步发生。

让一组数字走向有序。看清每一次比较、交换与归位。

6 种算法,同一组输入。
从工作原理,到可运行的过程。

快速排序

分区 · 递归

0值比较
0主数组写入
000001010202030304040505060607070808090910101111SORT / 06
待处理正在比较 / 移动基准 / 候选最终归位
主数组 下标从 0 开始初始输入
0 / 0
输入数据 38, 16, 52, 27, 9, 44, 63, 21, 35, 57, 12, 31

六种路径,一个终点。

点击任意一行,在实验台上运行。

算法平均时间最坏时间额外空间稳定性
快速排序Quick sort平均 O(n log n)O(n²)平均 O(log n)不稳定
归并排序Merge sortO(n log n)O(n log n)O(n)稳定
堆排序Heap sortO(n log n)O(n log n)O(1)不稳定
冒泡排序Bubble sort平均 O(n²)O(n²)O(1)稳定
插入排序Insertion sort平均 O(n²)O(n²)O(1)稳定
选择排序Selection sortO(n²)O(n²)O(1)不稳定

计数口径:只统计元素之间的值比较;写入只计主数组赋值,一次有效交换计 2 次。辅助槽写入和插入暂存不计入。稳定排序会保留相等元素的原始次序;悬停数字可查看原始下标。