Pagini recente » Cod sursa (job #1759369) | Cod sursa (job #476230) | Cod sursa (job #2984697) | Cod sursa (job #2543436) | Cod sursa (job #3239533)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define DN 500005
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,A[DN], B[DN];
void read(){
f>>n;
for(int i=1;i<=n;++i)
f>>A[i];
}
void mergeSort(int l,int r)
{
int m = (l + r)/2,i,j,k;
if (l == r) return;
mergeSort(l, m);
mergeSort(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];
}
void solve() {
mergeSort(1,n);
}
void write(){
for(int i=1;i<=n;++i)
g<<A[i]<<" ";
}
int main()
{
read();
solve();
write();
return 0;
}