Pagini recente » Cod sursa (job #1186895) | Cod sursa (job #775997) | Cod sursa (job #2049345) | Cod sursa (job #44141) | Cod sursa (job #1019880)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[10],aux[10],n;
void interclasare(int a,int b)
{
int i,j,m=(a+b)/2,nr=1;
i=a;
for(j=m+1;a<=m&&j<=b;)
{
if(v[a]<v[j])
{
aux[nr]=v[a];
nr++;
a++;
}
else
{
aux[nr]=v[j];
j++;
nr++;
}
}
if(a<=m)
for(;a<=m;a++)
{
aux[nr]=v[a];
nr++;
}
if(j<=b)
for(;j<=b;j++)
{
aux[nr]=v[j];
nr++;
}
a=i;
for(j=1;j<nr;j++)
{
v[a]=aux[j];
a++;
}
}
void mergesort(int s,int d)
{
int m=(s+d)/2;
if (s==d||s>d)
return;
mergesort(s,m);
mergesort(m+1,d);
interclasare(s,d);
}
void citire()
{
int i;
in>>n;
for(i=1;i<=n;i++)
in>>v[i];
}
int main()
{
citire();
mergesort(1,n);
for(int i=1;i<=n;i++)
out<<v[i]<<" ";
return 0;
}