Cod sursa(job #398200)

Utilizator samuel91Asofronie Samuel samuel91 Data 18 februarie 2010 10:59:59
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h> 
#define NX 500010 
int N, A[NX], B[NX]; 
void merge_sort(int l, int r) { 
    
int m = (l + r) >> 1, 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;     
freopen( "algsort.in", "r", stdin );     
freopen( "algsort.out", "w", stdout );  
scanf( "%d", &N ); 
for( i = 1; i <= N; i++ )         
scanf( "%d", A+i );     
merge_sort( 1, N );     
for( i = 1; i <= N; i++ )        
printf( "%d ", A[i] );     
return 0; 
}