Pagini recente » Cod sursa (job #462134) | Cod sursa (job #899620) | Cod sursa (job #915972) | Cod sursa (job #500593) | Cod sursa (job #813980)
Cod sursa(job #813980)
#include<fstream>
#include<algorithm>
#define NMAX 500000
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[NMAX],n,a[NMAX];
void merge_sort(int l, int r)
{
int m, i, j, k;
m = (l+r)/2;
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 && v[i] < v[j]) )
a[ k++ ] = v[ i++ ];
else
a[ k++ ] = v[ j++ ];
for( k = l; k <= r; k++ )
v[k] = a[k];
}
int main (void)
{
in>>n;
for(int i=0;i<n;++i)
in>>v[i];
in.close();
merge_sort(0,n-1);
for(int i=0;i<n;++i)
out<<v[i]<<" ";
out.close();
return 0;
}