Pagini recente » Cod sursa (job #2424801) | Cod sursa (job #2696338) | Istoria paginii info-oltenia-2018/individual/9 | Cod sursa (job #2209419) | Cod sursa (job #2592723)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int nmax=500000;
int v[nmax+1];
int v_aux[nmax+1];
void merge_sort(int x,int y){
if(x<y){
int mid=(x+y)/2;
merge_sort(x,mid);
merge_sort(mid+1,y);
int i=x,j=mid+1;
for(int k=x;k<=y;++k){
if(i>mid){
v_aux[k]=v[j];
++j;
}else if(j>y){
v_aux[k]=v[i];
++i;
}else if(v[i]<=v[j]){
v_aux[k]=v[i];
++i;
}else{
v_aux[k]=v[j];
++j;
}
}
for(int k=x;k<=y;++k){
v[k]=v_aux[k];
}
}
}
int main(){
int n;
fin>>n;
for(int i=1;i<=n;++i){
fin>>v[i];
}
merge_sort(1,n);
for(int i=1;i<=n;i++){
fout<<v[i]<<" ";
}
fout<<"\n";
return 0;
}