Pagini recente » Cod sursa (job #1528489) | Cod sursa (job #1988481) | Cod sursa (job #3332426) | Cod sursa (job #1302064) | Cod sursa (job #3317314)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int v[500001];
int aux[500001];
void interclass(int v[], int st, int dr){
int m = (st+dr)/2, i = st, j=m+1, k = st;
while(j<=dr&&i<=m){
if(v[j]>v[i]){
aux[k++]=v[i++];
}else{
aux[k++] = v[j++];
}
}
while(i<=m){
aux[k++] = v[i++];
}
while(j<=dr){
aux[k++] = v[j++];
}
for(int l=st;l<=dr;l++){
v[l] = aux[l];
}
}
void mergesort(int a[], int st, int dr){
int m = (st+dr)/2;
if(st==dr)
return;
mergesort(a, st, m);
mergesort(a, m+1, dr);
interclass(a, st, dr);
}
int main()
{
int n;
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
}
mergesort(v, 1, n);
for(int i=1;i<=n;i++){
fout<<v[i]<<' ';
}
return 0;
}