Pagini recente » Cod sursa (job #2220390) | Cod sursa (job #893380) | Cod sursa (job #1063698) | Cod sursa (job #3216059) | Cod sursa (job #272213)
Cod sursa(job #272213)
#include <fstream.h>
#define dim 500001
int n, a[dim], b[dim];
void merge_sort(int l, int r)
{
int m,i,j,k;
m=(l+r)/2;
if(l==r) return;
merge_sort(l,m);
merge_sort(m+1,r);
i=l;
j=m+1;
k=l;
while(i<=m||j<=r)
{
if( j>r || (i<=m && a[i]<a[j]) )
{
b[k]=a[i];
k++;
i++;
}
else
{
b[k]=a[j];
k++;
j++;
}
}
for(k=l;k<=r;k++)
a[k]=b[k];
}
int main()
{
int i;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
merge_sort(1,n);
for(i=1;i<=n;i++)
g<<a[i]<<' ';
g<<'\n';
f.close();
g.close();
return 0;
}