CC++ & Algorithm
算法可视化
排序复杂度 O(n log n) / 最坏 O(n²)支持自定义输入

快速排序

选一个基准(pivot),把比它小的放左边、大的放右边,然后对左右两半递归做同样的事。

复杂度 O(n log n) / 最坏 O(n²)
main.cpp第 15 行
1void quickSort(int a[], int lo, int hi) {
2 if (lo >= hi) return;
3 int pivot = a[hi];
4 int i = lo;
5 for (int j = lo; j < hi; j++) {
6 if (a[j] < pivot) {
7 swap(a[i], a[j]);
8 i++;
9 }
10 }
11 swap(a[i], a[hi]);
12 quickSort(a, lo, i - 1);
13 quickSort(a, i + 1, hi);
14}
15int main() {
16 int a[] = {38, 27, 43, 3, 9, 82, 10};
17 quickSort(a, 0, 6);
18 return 0;
19}
变量表0 个变量
还没有变量,执行到声明语句后出现
数组 a
比较交换已就位
38
0
27
1
43
2
3
3
9
4
82
5
10
6
1/52

进入 main 函数

自定义数据
限制:最多 20 个 · 整数 · 范围 0-999
1 / 52