快速排序

it2023-09-04  71

#include <iostream> #include <cstdio> using namespace std; const int N = 1000; int a[N]; void quick_sort(int l, int r, int* a) { if(l >= r) return; int mid = l + r >> 1; int i = l - 1, j = r + 1; int x = a[mid]; while(true) { do i ++; while(a[i] <= x); do j --; while(a[j] >= x); if(i >= j) break; swap(a[i], a[j]); } quick_sort(l, mid - 1, a); quick_sort(mid + 1, r, a); } int main() { int n; cin >> n; for (int i = 0; i < n; i ++) { scanf("%d", a + i); } quick_sort(0, n - 1, a); for (int i = 0; i < n; i ++) { printf("%d ", a[i]); } puts(""); return 0; }

 

最新回复(0)