Pagini recente » Cod sursa (job #2298720) | Cod sursa (job #3208918) | Cod sursa (job #2976738) | Cod sursa (job #1775912) | Cod sursa (job #2053064)
#include <iostream>
#include <fstream>
#define Nmax 1500
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[Nmax];
void Merge (int s,int d)
{
int i,j,k,c[Nmax],middle;
middle=(s+d)/2;
i=s;
j=middle+1;
k=0;
while (i<=middle&&j<=d)
{
if (v[i]<=v[j])
{
k++;
c[k]=v[i];
i++;
}
else {
k++;
c[k]=v[j];
j++;
}
}
while (i<=middle) {
{ k++;
c[k]=v[i];
i++;
}
while (j<=d)
{ k++;
c[k]=v[j];
j++;
}
k=0;
for (i=s;i<=d;i++)
{k++;
v[i]=c[k];
}
}
}
void Mergesort (int s,int d)
{
int middle =(s+d)/2;
if (s<d)
{
Mergesort(s,middle);
Mergesort (middle+1,d);
Merge (s,d);
}
}
int main()
{ int n,i;
fin>>n;
for (i=1;i<=n;i++)
fin>>v[i];
Mergesort(1,n);
for (i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}