Pagini recente » Cod sursa (job #1701394) | Cod sursa (job #1267942) | Cod sursa (job #2150198) | Cod sursa (job #2154555) | Cod sursa (job #1019866)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long a[500000],b[500000];
int n;
void merge(int p,int q,int r)
{int i,j,k;
k=1;
i=p;
j=q+1;
while(i<=q && j<=r)
{
if(a[i]<a[j])
{
b[k]=a[i];
k++;
i++;
}
else
{
b[k]=a[j];
k++;
j++;
}
}
while(i<=q)
{
b[k]=a[i];
k++;
i++;
}
while(j<=r)
{
b[k]=a[j];
k++;
j++;
}
k--;
for(i=r;i>=p;i--)
{
a[i]=b[k];
k--;
}
}
void mergesort(int p,int q)
{int m;
if(p<q)
{
m=(p+q)/2;
mergesort(p,m);
mergesort(m+1,q);
merge(p,m,q);
}
}
int main()
{int i;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
mergesort(1,n);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
g.close();
return 0;
}