Pagini recente » Cod sursa (job #2422682) | Cod sursa (job #2914426) | Cod sursa (job #2949267) | Cod sursa (job #3162300) | Cod sursa (job #2847695)
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
void interclasare(long long v[],long st,long dr){
int m=(st+dr)/2;
int i=st, j=m+1, k=st, aux[50000];
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);
for(long long i=1;i<=n;i++) out<<v[i]<< " ";
out.close();
return 0;
}