Cod sursa(job #1822990)

Utilizator Coroian_DavidCoroian David Coroian_David Data 5 decembrie 2016 19:42:20
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#include <algorithm>

#define NX 500010

using namespace std;

int N, A[NX], B[NX];


void sortare(int inf, int sup) {
  int x, i, j, t;
  i = inf;
  j = sup;
  x = A[(i + j) / 2];
  do {
    while ( (i < sup) && (A[i] < x) ) i++;
    while ( (j > inf) &&(A[j] > x) ) j--;
    if ( i<= j ) {
      t = A[i];
      A[i] = A[j];
      A[j] = t;
      i++;
      j--;
    }
  } while ( i <= j );
  if ( inf < j ) sortare(inf, j);
  if ( i < sup ) sortare(i, sup);
}

int main() {
    int i;

    freopen( "algsort.in", "r", stdin );
    freopen( "algsort.out", "w", stdout );

    scanf( "%d", &N );
    for( i = 1; i <= N; i++ )
        scanf( "%d", &A[i] );

   sortare(1 , N);

    for( i = 1; i <= N; i++ )
        printf( "%d ", A[i] );

    return 0;
}