Pagini recente » Cod sursa (job #956021) | Cod sursa (job #2890785) | Cod sursa (job #2142824) | Cod sursa (job #383657) | Cod sursa (job #3005347)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
#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;
f>>N
for( i = 1; i <= N; i++ )
f>>A[i];
merge_sort( 1, N );
for( i = 1; i <= N; i++ )
g<<A[i]<<' ';
return 0;
}