Pagini recente » Cod sursa (job #1533828) | Cod sursa (job #1626484) | Cod sursa (job #641276) | Cod sursa (job #1179239) | Cod sursa (job #1453253)
#include <bits/stdc++.h>
using namespace std;
int n,a[500013],aux[500013],i;
void MergeSort(int st,int dr)
{
int i,j,k;
int middle=(st+dr)/2;
if (st==dr) return ;
MergeSort(st,middle);
MergeSort(middle+1,dr);
for (i=st, j=middle+1, k=st; i<=middle || j<=dr; )
if (j>dr || (st<=middle && a[i] < a[j])) aux[k++]=a[i++];
else
if (i>middle || (j<=dr && a[i] >= a[j])) aux[k++]=a[j++];
for (k=st;k<=dr;k++) a[k]=aux[k];
}
int main(void)
{
ifstream cin("algsort.in");
ofstream cout("algsort.out");
cin>>n;
for (i=1;i<=n;++i) cin>>a[i];
MergeSort(1,n);
for (i=1;i<=n;++i) cout<<a[i]<<" ";
return 0;
}