Pagini recente » Cod sursa (job #2931167) | Cod sursa (job #3183786) | Cod sursa (job #2476915) | Cod sursa (job #2949480) | Cod sursa (job #279473)
Cod sursa(job #279473)
#include <fstream>
using namespace std;
const int NMAX=500001;
int N,a[NMAX],b[NMAX];
ifstream f("algsort.in");
ofstream g("algsort.out");
void merge(int ls,int ld){
if (ls==ld) return;
int i,j,mij=(ls+ld)/2,k;
merge(ls,mij);
merge(mij+1,ld);
for (i=ls,j=mij+1,k=ls-1;i<=mij || j<=ld;)
if ( (i<=mij && a[i]<=a[j]) || j>ld)
b[++k]=a[i++];
else
b[++k]=a[j++];
for (i=ls;i<=ld;++i) a[i]=b[i];
}
int main(){
int i;
f>>N;
for (i=1;i<=N;++i) f>>a[i];
merge(1,N);
for (i=1;i<=N;++i) g<<a[i]<<' ';
return 0;
}