Pagini recente » Cod sursa (job #2081498) | Cod sursa (job #1408140) | Cod sursa (job #2924708) | Cod sursa (job #48808) | Cod sursa (job #2081324)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int N = 500010;
int n,i,v[N],aux[N];
void mergeSort(int,int);
int main()
{
srand(time(NULL));
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;
}
void mergeSort(int lo,int hi)
{
if(lo>=hi)return;
int i,j,k, mi=(lo+hi)/2;
mergeSort(lo,mi);
mergeSort(mi+1,hi);
for(i=lo;i<=hi;i++)aux[i]=v[i];
i=lo;k=lo;j=mi+1;
while(i<=mi&&j<=hi)
{
if(aux[i]<=aux[j])v[k++]=aux[i++];
else v[k++]=aux[j++];
}
while(i<=mi)v[k++]=aux[i++];
while(j<=hi)v[k++]=aux[j++];
}