1.各种排序算法时间复杂度
2.快排思路图(分治思想)
3.代码实现
#include <iostream> #include <algorithm> using namespace std; const int N = 1e5 + 10; int n; int a[N]; void qsort(int left, int right) { int l = left, r = right; int mid = a[(l + r) >> 1]; while (l <= r) { while (a[l] < mid) l++; while (a[r] > mid) r--; if (l <= r) { swap(a[l], a[r]); l++; r--; } } if (l <= right) qsort(l, right); if (left <= r) qsort(left, r); } int main() { ios::sync_with_stdio(false); cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; qsort(1, n); for (int i = 1; i <= n; i++) cout << a[i] << ‘ ‘; return 0; }
原文:https://www.cnblogs.com/fhrmzq/p/12859365.html