Pagini recente » Cod sursa (job #1128298) | Cod sursa (job #2218301) | Cod sursa (job #3254899) | Cod sursa (job #3175088) | Cod sursa (job #2850125)
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
int aux[500000], v[500000];
void interclasare(long st,long dr){
int m=(st+dr)/2;
int i=st, j=m+1, k=st;
while(i<=m && j<=dr){
if(v[i]<v[j]){
aux[k++]=v[i++];
}else{
aux[k++]=v[j++];
}
}
while(i<=m) aux[k++]=v[i++];
while(j<=dr) aux[k++]=v[j++];
for(k=st;k<=dr;k++){
v[k]=aux[k];
}
}
void ms(int v[], int st,int dr){
if (st==dr) return;
int m=(st+dr)/2;
ms(v,st,m);
ms(v,m+1,dr);
interclasare(st,dr);
}
int main(){
ifstream in("algsort.in");
ofstream out("algsort.out");
int N;
cin>>N;
for(int i=0;i<N;i++) cin>>v[i];
in.close();
ms(v,0,N-1);
for(int i=0;i<N;i++) cout<<v[i]<< " ";
out.close();
return 0;
}