Pagini recente » Cod sursa (job #2202634) | Cod sursa (job #608873) | Cod sursa (job #2951907) | Cod sursa (job #276961) | Cod sursa (job #2900775)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[100001],n;
void citire()
{fin>>n;
int i;
for(i=1;i<=n;i++)
fin>>a[i];
}
void interclasare(int s ,int m,int d)
{ int i,j,k,temp[n];
i=s;j=m+1;k=0;
while(i<=m&&j<=d)
if(a[i]<a[j]) temp[++k]=a[i++];
else temp[++k]=a[j++];
while(i<=m) temp[++k]=a[i++];
while(j<=d) temp[++k]=a[j++];
for(i=s,k=1;i<=d;i++,k++) a[i]=temp[k];
}
void MS(int s,int d)
{ if(s<d)
{int m=(s+d)/2;
MS(s,m);
MS(m+1,d);
interclasare(s,m,d);
}
}
void afis()
{int i;
for(i=1;i<=n;i++)
fout<<a[i]<<" ";
}
int main()
{ citire();
MS(1,n);
afis();
return 0;
}