Pagini recente » Cod sursa (job #2815750) | Cod sursa (job #1229685) | Cod sursa (job #3293103) | Cod sursa (job #3256722) | Cod sursa (job #3285050)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, v[500000];
int tmp[500000];
void mergesort(int v[], int st, int dr)
{
if(st<dr)
{
int m=(st+dr)/2;
mergesort(v,st,m);
mergesort(v,m+1,dr);
int i=st,j=m+1,k=0;
while(i<=m&&j<=dr)
{
if(v[i]<v[j]){
tmp[k]=v[i];
i++;
}else{
tmp[k]=v[j];
j++;
}
k++;
}
while(i<=m)
{
tmp[k]=v[i];
k++;
i++;
}
while(j<=dr){
tmp[k]=v[j];
k++;
j++;
}
for(i=st,j=0;i<=dr;i++,j++)
v[i]=tmp[j];
}
}
int main()
{
fin>>n;
for (int i=0;i<n;i++)
fin>>v[i];
mergesort(v,0,n-1);
for (int i=0;i<n;i++)
fout<<v[i]<<" ";
return 0;
}