Cod sursa(job #2617924)

Utilizator ReksioCroftOctavian Florin Staicu ReksioCroft Data 23 mai 2020 12:45:58
Problema Sortare prin comparare Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <stdio.h>
#include <assert.h>


int v[500000];


void myqsort( int start, int stop ) {
    int i, j, aux, pivot;
    pivot = v[ ( start + stop ) / 2 ];
    i = start;
    j = stop;
    while ( i <= j ) {
        while ( v[ i ] < pivot )
            i++;
        while ( v[ j ] > pivot )
            j--;
        if ( i <= j ) {
            aux = v[ i ];
            v[ i ] = v[ j ];
            v[ j ] = aux;
            i++;
            j--;
        }
    }
    if ( start < j )
        myqsort( start, j );
    if ( i < stop )
        myqsort( i, stop );
}


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