Pagini recente » Cod sursa (job #1141797) | Cod sursa (job #591400) | Cod sursa (job #550682) | Cod sursa (job #1643410) | Cod sursa (job #1041677)
#include<fstream>
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
int a[500005];
int i,n;
void intercl(int st,int mid,int dr){
int aux[500005],k=1;
int i=st,j=mid+1;
while(i<=mid && j<=dr)
if (a[i]<a[j]) aux[k++]=a[i++];
else aux[k++]=a[j++];
while(i<=mid) aux[k++]=a[i++];
while(j<=dr) aux[k++]=a[j++];
for(i=st;i<=dr;i++) a[i]=aux[i+1-st];
}
void merge(int st,int dr){
int mid;
if (dr>st) {
mid=(st+dr)/2;
merge(st,mid);
merge(mid+1,dr);
intercl(st,mid,dr);
}
}
int main(void){
fi>>n;
for(i=1;i<=n;i++) fi>>a[i];
merge(1,n);
for(i=1;i<=n;i++) fo<<a[i]<<" ";
fi.close();
fo.close();
return 0;
}