Cod sursa(job #2393144)

Utilizator ShumaherAdasga Shumaher Data 30 martie 2019 21:57:40
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.14 kb
#include <iostream>
#include <fstream>
#define MAX 500100
#define MOD 555557
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int A[MAX];
void quicksort(int l, int r) {
    int p, i, j;
    i = l;
    j = r;
    p = A[(l + r) >> 1];

    do {

        while(( i < r) && (A[i] < p))
            i++;
        while((j > l) && (A[i] > p))
            j--;
        if(i <= j) {
            swap(A[i], A[j]);
            i++;
            j--;
        }
    } while(i <= j);
    if(l < j)
        quicksort(l, j);
    if(i < r)
        quicksort(i, r);
}
void QUICKSORT(int l, int r) {
  int x, i, j, t;
  i = l;
  j = r;
  x = A[(i + j)>>1];
  do {
    while ( (i < r) && (A[i] < x) ) i++;
    while ( (j > l) && (A[j] > x) ) j--;
    if ( i <= j ) {
      swap(A[i],A[j]);
      i++;
      j--;
    }
  } while ( i <= j );
  if ( l < j ) QUICKSORT(l, j);
  if ( i < r ) QUICKSORT(i, r);
}
int main() {
    int N;
    in >> N;
    for(int i = 1; i <= N; i++)
        in >> A[i];
    QUICKSORT(1, N);

    for(int i = 1; i <= N; i++)
        out << A[i] << " ";


    return 0;
}