Cod sursa(job #2346678)

Utilizator priboiraduPriboi Radu Bogdan priboiradu Data 17 februarie 2019 22:37:53
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>

int v[500000];

void quicksort( int st, int dr ) {
    int i, j, pivot, aux;
    i = st;
    j = dr;
    pivot = v[( i + j ) / 2];
    while ( i <= j ) {
        while ( i < dr && v[i] < pivot )
            i++;
        while ( st < j && pivot < v[j] )
            j--;
        if ( i <= j ) {
            aux = v[i];
            v[i] = v[j];
            v[j] = aux;
            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" );
    fout = fopen( "algsort.out", "w" );
    fscanf( fin, "%d", &n );
    for ( i = 0; i < n; i++ )
        fscanf( fin, "%d", &v[i] );
    quicksort( 0, n - 1 );
    for ( i = 0; i < n; i++ )
        fprintf( fout, "%d ", v[i] );
    fclose( fin );
    fclose( fout );
    return 0;
}