Pagini recente » Cod sursa (job #1644575) | Cod sursa (job #2150711) | Cod sursa (job #3001277) | Cod sursa (job #469784) | Cod sursa (job #1496297)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int i ,n,a[500000],c[500000],l,r;
void mergesort(int l,int r)
{
int i;
if(l==r) return;
int mid=(l+r)/2;
mergesort(l,mid);
mergesort(mid+1,r);
int p1,p2;
p1=l;
p2=mid+1;
for(i=l; i<=r; i++)
if(p1==mid+1)
{
c[i]=a[p2];
p2++;
}
else if(p2==r+1)
{
c[i]=a[p1];
p1++;
}
else if(a[p1]<a[p2])
{
c[i]=a[p1];
p1++;
}
else
{
c[i]=a[p2];
p2++;
}
for(i=l; i<=r; i++)
a[i]=c[i];
}
int main()
{
fin>>n;
for(i=1; i<=n; i++)
fin>>a[i];
mergesort(1, n);
for(i=1; i<=n; i++)
fout<<a[i]<<" ";
return 0;
}