Cod sursa(job #480210)

Utilizator dicu_dariaDaria Dicu dicu_daria Data 26 august 2010 21:57:20
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#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;
}