Pagini recente » Cod sursa (job #2044489) | Cod sursa (job #1580191) | Cod sursa (job #1684225) | Cod sursa (job #2017616) | Cod sursa (job #2355503)
#include <fstream>
using namespace std;
const int N=500001;
int v[N], aux[N];
ifstream in("algsort.in");
ofstream out("algsort.out");
void merge_v(int v[], int st, int dr){
int m=(st+dr)/2;
int i, j, k;
i=k=st;
j=m+1;
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);
merge_v(v, st, dr);
}
int main(){
int n;
in>>n;
for(int i=1; i<=n; i++){
in>>v[i];
}
ms(v, 1, n);
for(int i=1; i<=n; i++){
out<<v[i]<<" ";
}
return 0;
}