Pagini recente » Cod sursa (job #1932900) | Cod sursa (job #2959662) | Cod sursa (job #2607753) | Cod sursa (job #330649) | Cod sursa (job #2281850)
#include <bits/stdc++.h>
#define DIM 500005
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n, arr[DIM], aux[DIM];
void mergeSort( int st, int dr )
{
if( st >= dr )
return;
int mid = (st + dr)/2;
mergeSort( st, mid );
mergeSort( mid + 1, dr );
int i = st, j = mid + 1, k = st - 1;
while( i <= mid && j <= dr )
if( arr[i] <= arr[j] )
aux[++k] = arr[i++];
else
aux[++k] = arr[j++];
for( ; i <= mid; i++ )
aux[++k]= arr[i];
for( ; j <= dr; j++ )
aux[++k] = arr[j];
for( int ii = st; ii <= dr; ii++ )
arr[ii] = aux[ii];
}
int main()
{
in>>n;
for( int i = 1; i <= n; i++ )
in>>arr[i];
mergeSort(1, n);
for( int i = 1; i <= n; i++ )
out<<arr[i]<<" ";
return 0;
}