十大排序
1.1快速排序
快速排序模版
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
void quicksort(vector<ll>& arr, ll l, ll r) {
if (l >= r) return;
ll pivot = arr[l + (r - l) / 2]; // 选择中间元素作为pivot
ll i = l, j = r;
while (i <= j) {
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j) {
swap(arr[i], arr[j]);
i++;
j--;
}
}
if (l < j) quicksort(arr, l, j);
if (i < r) quicksort(arr, i, r);
}
int main() {
ll N;
cin >> N;
vector<ll> arr(N);
for (ll i = 0; i < N; i++) {
cin >> arr[i];
}
quicksort(arr, 0, N - 1);
for (ll i = 0; i < N; i++) {
if (i > 0) cout << " ";
cout << arr[i];
}
cout << endl;
return 0;
}