Pagini recente » Cod sursa (job #2475694) | Cod sursa (job #3262112) | Cod sursa (job #3132881) | Cod sursa (job #3177516) | Cod sursa (job #2850107)
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
long aux[500000];
void interclasare(long long v[],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(long long v[],long st,long dr){
if (st==dr) return;
int m=(st+dr)/2;
ms(v,st,m);
ms(v,m+1,dr);
interclasare(v,st,dr);
}
int main(){
ifstream in("algsort.in");
ofstream out("algsort.out");
long N;
long long v[50000];
in>>N;
for(long long i=0;i<N;i++) in>>v[i];
in.close();
ms(v,0,N-1);
for(long long i=0;i<N;i++) out<<v[i]<< " ";
out.close();
return 0;
}