Pagini recente » Cod sursa (job #424660) | Cod sursa (job #471493) | Cod sursa (job #3188632) | Cod sursa (job #2620357) | Cod sursa (job #467950)
Cod sursa(job #467950)
//mergesort ca pt bac
#include<fstream.h>
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,i;
int a[500001],b[500001];
void sort(int li,int ls)
{
int m=(li+ls)/2;
int i,j,k;
if(li<ls)
{
sort(li,m);
sort(m+1,ls);
}
if(ls - li > 0)
{
i=li;j=m+1;k=1;
while(i<=m && j<=ls)
{
if(a[i] < a[j])
b[k++] = a[i++];
else
b[k++] = a[j++];
}
for(;i<=m;i++)
b[k++]=a[i];
for(;j<=ls;j++)
b[k++]=a[j];
k=1;
for(i=li;i<=ls;i++)
a[i] = b[k++];
}
}
int main(void)
{
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
sort(1,n);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}