Cod sursa(job #2669876)

Utilizator TghicaGhica Tudor Tghica Data 8 noiembrie 2020 12:36:25
Problema Sortare prin comparare Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <stdio.h>


void sort( int v[], int bo, int eo ) {
    int c, b = bo, e = eo, pivot = v[(bo + eo) / 2];
    while ( v[b] < pivot )
        b++;
    while ( v[e] > pivot )
        e--;
    while ( b < e ) {
        c = v[e];
        v[e] = v[b];
        v[b] = c;
        do
            b++;
        while ( v[b] < pivot );

        do
            e--;
        while ( v[e] > pivot );
    }
    if ( bo < e )
        sort(v, bo, e );
    if ( e + 1 < eo )
        sort(v, e + 1, eo );
}

int v[500000];

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