Pagini recente » Cod sursa (job #2122396) | Cod sursa (job #2535666) | Cod sursa (job #1730158) | Cod sursa (job #2344724) | Cod sursa (job #1314228)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
void merge(int a[],int s,int m,int d)
{
int i,j,k,b[10000],q;
i=s;j=m+1;k=s;
while(i<=m&&j<=d)
{if(a[i]<a[j])
{b[k]=a[i]; i++;}
else {b[k]=a[j]; j++;}
k++;}
if(i>m) for(q=j;q<=d;q++)
{
b[k]=a[q];
k++;
}
else for(q=i;q<=m;q++)
{
b[k]=a[q];
k++;
}
for(i=s;i<=d;i++)
a[i]=b[i];
}
void mergesort(int a[],int s,int d)
{
int m;
if(s<d)
{
m=(s+d)/2;
mergesort(a,s,m);
mergesort(a,m+1,d);
merge(a,s,m,d);
}
}
int main()
{
int n,i,a[1000];
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
mergesort(a,1,n);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}