Pagini recente » Cod sursa (job #2653845) | Cod sursa (job #2038119) | Cod sursa (job #1860021) | Cod sursa (job #2834356) | Cod sursa (job #2271809)
#include<fstream>
#define N 500000
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
unsigned int vec[N+1];
void merge(unsigned int* v,int n){
if (n==1) return ;
//cout<<n<<endl;
merge(v,(n+1)/2);
merge(v+(n+1)/2,n/2);
unsigned int aux[N+1];
int a=0,b=(n+1)/2;
for(int i=0;i<n;i++){
if (a>=(n+1)/2){
aux[i]=v[b];
b++;
}
else
if (b>=n){
aux[i]=v[a];
a++;
}
else
if (v[a]<v[b]){
aux[i]=v[a];
a++;
}
else {
aux[i]=v[b];
b++;
}
}
for(int i=0;i<n;i++)
v[i]=aux[i];
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>vec[i];
merge(vec,n);
for(int i=0;i<n;i++)
cout<<vec[i]<<' ';
cout<<endl;
return 0;
}