Cod sursa(job #1020807)

Utilizator vlad.florescu94FMI Florescu Vlad - Adrian vlad.florescu94 Data 2 noiembrie 2013 17:48:14
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long a[500001],b[500001],n;
void interclasare(long left,long mid,long right)
{long i=left,j=mid+1,k=left;
 while(i<=mid&&j<=right)
   {if(a[i]<a[j])
      {b[k]=a[i];i++;}
    else
      if(a[i]>a[j])
        {b[k]=a[j];j++;}
      else
        {b[k++]=a[i];b[k]=a[j];i++;j++;}
    k++;
   }
 while(i<=mid)
   {b[k]=a[i];i++;}
 while(j<=right)
   {b[k]=a[j];j++;}
 for(i=left;i<=right;i++)
    a[i]=b[i];
}
void msort(long st,long dr)
{long m;
 m=(st+dr)/2;
 if(st<dr)
   {msort(st,m);
    msort(m+1,dr);
   }
 interclasare(st,m,dr);
}
int main()
{long i;
 f>>n;
 for(i=1;i<=n;i++)
    f>>a[i];
 msort(1,n);
 for(i=1;i<=n;i++)
    g<<a[i]<<" ";
 f.close();g.close();
 return 0;
}