Pagini recente » Cod sursa (job #2603224) | Cod sursa (job #888678) | Cod sursa (job #622998) | Cod sursa (job #967798) | Cod sursa (job #2779948)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int tmp[500001],v[500001],n;
void Mergesort (int left, int right){
int len=right-left+1;
if (len==1)
return;
int mijloc=(left+right)/2;
Mergesort (left,mijloc);
Mergesort (mijloc+1,right);
int i=left,j=mijloc+1,k=1;
while (i<=mijloc and j<=right)
{
if (v[i]>v[j]){
tmp[k++]=v[j++];
}
else{
tmp[k++]=v[i++];
}
}
while (i<=mijloc)
tmp[k++]=v[i++];
while (j<=right)
tmp[k++]=v[j++];
i=1;
for (int r=left;r<=right;r++)
{
v[r]=tmp[i];
i++;
}
}
int main()
{
fin >>n;
for (int i=1;i<=n;++i)
fin >>v[i];
Mergesort (1,n);
for (int i=1;i<=n;++i)
fout <<v[i]<<' ';
return 0;
}