Pagini recente » Cod sursa (job #2135495) | Cod sursa (job #1442285) | Cod sursa (job #2137233) | Cod sursa (job #1441292) | Cod sursa (job #1441289)
#include<fstream>
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
const int MAX_N = 500005;
int i,n,a[MAX_N],aux[MAX_N];
void interclasare(int st, int mijl, int dr){
int i,j,k=0;
for(i=st,j=mijl+1;i<=mijl && j<=dr;)
if(a[i]<a[j]) aux[++k]=a[i++];
else aux[++k]=a[j++];
for(;i<=mijl;i++) aux[++k]=a[i];
for(;j<=dr;j++) aux[++k]=a[j];
for(i=st;i<=dr;i++) a[i]=aux[i-st+1];
}
void sortare(int st, int dr){
if(st==dr) return;
int mijl = (st+dr)/2;
sortare(st,mijl);
sortare(mijl+1,dr);
interclasare(st,mijl,dr);
}
int main(){
fi>>n;
for(i=1;i<=n;i++) fi>>a[i];
sortare(1,n);
for(i=1;i<=n;i++) fo<<a[i]<<" ";
fi.close();
fo.close();
return 0;
}