Cod sursa(job #2673666)

Utilizator mihaipriboimihailucapriboi mihaipriboi Data 17 noiembrie 2020 14:17:46
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
// Mihai Priboi

#include <bits/stdc++.h>

int v[500000];

void quicksort( int st, int dr ) {
  int i, j, mij, aux;
  mij = v[(st + dr) / 2];
  i = st;
  j = dr;
  do {
    while( i < dr && v[i] < mij ) i++;
    while( j > st && v[j] > mij ) j--;
    if( i <= j ) {
      aux = v[i];
      v[i] = v[j];
      v[j] = aux;
      i++;
      j--;
    }
  } while( i <= j );
	if( st < j ) quicksort( st, j );
	if( i < dr ) quicksort( i, dr );
}

int main() {
  FILE *fin, *fout;
  int n, i;
  fin = fopen( "algsort.in", "r" );
  fscanf( fin, "%d", &n );
  for( i = 0; i < n; i++ )
    fscanf( fin, "%d", &v[i] );
  quicksort(0, n - 1);
  fclose( fin );
  fout = fopen( "algsort.out", "w" );
  for( i = 0; i < n; i++ )
    fprintf( fout, "%d ", v[i] );
  fclose( fout );
  return 0;
}