Pagini recente » Cod sursa (job #3228384) | Cod sursa (job #768790) | Cod sursa (job #2376060) | Cod sursa (job #912615) | Cod sursa (job #480209)
Cod sursa(job #480209)
#include <fstream>
using namespace std;
int a[100005],b[100005],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;
}