Pagini recente » Cod sursa (job #1253280) | Cod sursa (job #2411520) | Cod sursa (job #2590632) | Cod sursa (job #2985007) | Cod sursa (job #1059253)
#include <iostream>
#include<fstream>
using namespace std;
long x[500000],n;
ifstream f("algsort.in");
ofstream g("algsort.out");
void divizeaza(int s,int d,int &m)
{
m=(s+d)/2;
}
void interclaseaza(int s,int d,int m)
{
int i=s,j=m+1,k=1,v[100];
while(i<=m && j<=d)
{
if(x[i]<x[j])
{
v[k]=x[i];
i++;
}
else
{
v[k]=x[j];
j++;
}
k++;
}
if(i<=m)
while(i<=m)
{
v[k]=x[i];
i++;
k++;
}
else
while(j<=d)
{
v[k]=x[j];
j++;
k++;
}
for(k=1,i=s;i<=d;k++,i++)
x[i]=v[k];
}
void mergesort(int s,int d)
{
int m;
if(s<d)
{
divizeaza(s,d,m);
mergesort(s,m);
mergesort(m+1,d);
interclaseaza(s,d,m);
}
}
int main()
{
long i;
f>>n;
for(i=1;i<=n;i++)
{
f>>x[i];
}
mergesort(1,n);
for(i=1;i<=n;i++)
g<<x[i]<<" ";
return 0;
}