Pagini recente » Cod sursa (job #259671) | Cod sursa (job #2805992) | Cod sursa (job #3173104) | Cod sursa (job #427341) | Cod sursa (job #480210)
Cod sursa(job #480210)
#include <fstream>
using namespace std;
int a[500005],b[500005],n;
void merge(int p,int r)
{
int x,q,i,j;
q=(p+r)/2;
if(q>p) { merge(p,q); merge(q+1,r); }
for(i=p;i<=r;i++) b[i]=a[i];
for(i=p,j=q+1,x=p-1;i<=q and j<=r;)
if(b[i]<=b[j]) a[++x]=b[i++]; else
if(b[j]<b[i]) a[++x]=b[j++];
while(i<=q) a[++x]=b[i++];
while(j<=r) a[++x]=b[j++];
}
int main()
{
int i;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
fi>>n;
for(i=1;i<=n;i++) fi>>a[i];
merge(1,n);
for(i=1;i<=n;i++) fo<<a[i]<<" ";
fo.close();
return 0;
}