Alex_tz307

QuickSort

Nov 6th, 2020 (edited)
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. ifstream fin("algsort.in");
  6. ofstream fout("algsort.out");
  7.  
  8. void quicksort(int a[], int st, int dr) {
  9.     if(st < dr) {
  10.         int mid = (st + dr) >> 1;
  11.         swap(a[st], a[mid]);
  12.         int i = st , j = dr, d = 0;
  13.         while(i < j) {
  14.             if(a[i] > a[j]) {
  15.                 swap(a[i], a[j]);
  16.                 d = !d;
  17.             }
  18.             i += d;
  19.             j -= !d;
  20.         }
  21.         quicksort(a, st , i - 1);
  22.         quicksort(a, i + 1, dr);
  23.     }
  24. }
  25.  
  26. const int NMAX = 5e5 + 5;
  27. int N, a[NMAX];
  28.  
  29. int main() {
  30.     fin >> N;
  31.     for(int i = 1; i <= N; ++i)
  32.         fin >> a[i];
  33.     quicksort(a, 1, N);
  34.     for(int i = 1; i <= N; ++i)
  35.         fout << a[i] << ' ';
  36. }
  37.  
Advertisement
Add Comment
Please, Sign In to add comment