Cod sursa(job #1022904)

Utilizator AndreeaPanaitAndreea Elena Panait AndreeaPanait Data 6 noiembrie 2013 10:13:45
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb

#include<fstream>

using namespace std;

long a[500001], n, i;

void inter ( long &x, long &y)
{
    int aux= x;
    x=y;
    y=aux;
}

int pivot(long s, long d)
{
    long di, dj, i, j;
    i=s;
    j=d;
    di=0;
    dj=1;

    while(i<j)
       {
           if(a[i]>a[j])
           {
               inter(a[i], a[j]);
               inter(di, dj);
           }

           i+=di;
           j-=dj;
       }

return i;
}

void quick(int s, int d)
{
    if(s<d)
      {
          int m;
          m=pivot(s,d);
          quick(s, m-1);
          quick(m+1, d);
      }
}

int main()
{
	ifstream f;
	ofstream g;
    f.open ("algsort.in", ifstream::in);
    g.open ("algsort.out",ofstream::out);

    f>>n;
    for(i=1;i<=n;i++) f>>a[i];
    quick(1, n);
    for(i=1;i<=n;i++) g<<a[i]<<" ";

	f.close();
	g.close();

return 0;

}