Pagini recente » Cod sursa (job #509486) | Cod sursa (job #1049314) | Cod sursa (job #1566516) | Cod sursa (job #889388) | Cod sursa (job #1879878)
#include <fstream>
using namespace std;
fstream in ("algsort.in");
ofstream out ("algsort.out");
int a[500010],i,n;
void inter (int st,int mij,int dr){
int i,j,k,t,b[500010];
for(i=st;i<=dr;i++)
b[i]=a[i];
i=st; j=mij+1; k=st-1;
while(i<=mij && j<=dr )
if (b[i]< b[j]){ a[++k]=b[i]; i++;}
else {a[++k]=b[j]; j++;}
for (t=i; t<=mij; t++) a[++k]=b[t];
for (t=j; t<=dr; t++) a[++k]=b[t];
}
void mergesort ( int st, int dr){
int mij;
if (st!=dr){
mij=(st+dr)/2;
mergesort (st,mij);
mergesort(mij+1,dr);
inter(st,mij,dr);
}
}
int main()
{
in>>n;
for (i=1; i<=n;i++)
in>>a[i];
mergesort(1,n);
for (i=1 ;i<=n;i++)
out<<a[i]<<" ";
return 0;
}