Cod sursa(job #1562970)

Utilizator RodoetTeodor Darie Rodoet Data 5 ianuarie 2016 16:46:23
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");

int N, A[500010], B[500010];
 
void merge_sort(int l, int r) 
{
    int m = (l + r)/2, i, j, k;
 
    if( l == r ) return;
 
    merge_sort( l, m );
    merge_sort( m + 1, r );
 
    for( i = l, j = m+1, k = l; i <= m || j <= r; )
        if( j > r || (i <= m && A[i] < A[j]) )
            B[ k++ ] = A[ i++ ];
        else
            B[ k++ ] = A[ j++ ];
    for( k = l; k <= r; k++ )
        A[k] = B[k];
}
 
int main() 
{
    int i;
    in>>N;
    for( i = 1; i <= N; i++ )
        in>>A[i];
 
    merge_sort( 1, N );
 
    for( i = 1; i <= N; i++ )
        out<<A[i];
 
    return 0;
}