Pagini recente » Cod sursa (job #751392) | Cod sursa (job #3244352) | Cod sursa (job #2275430) | Cod sursa (job #1878424) | Cod sursa (job #2608949)
#include <iostream>
#include <fstream>
using namespace std;
int v[500000], c[500000];
int n;
void interclasare(int st,int mij,int dr)
{
int k=1,i=st,j=mij+1;
while(i<=mij&&j<=dr)
if(v[i]<v[j])
c[k++]=v[i++];
else c[k++]=v[j++];
while(i<=mij)
c[k++]=v[i++];
while(j<=dr)
c[k++]=v[j++];
k--;
for(i=1;i<=k;i++)
v[st+i-1]=c[i];
}
void divide(int st,int dr)
{
if(st<dr)
{
divide(st,(st+dr)/2);
divide((st+dr)/2+1,dr);
interclasare(st,(st+dr)/2,dr);
}
}
int main()
{
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int i;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
divide(1,n);
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
fin.close();
fout.close();
return 0;
}