Cod sursa(job #1053661)

Utilizator albupetruFMI Albu Petru albupetru Data 12 decembrie 2013 21:27:50
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<fstream>
#include<cstdlib>
using namespace std;

long long n,i,v[200000000];

long partitie(int s,int r, int pivot)
{
 long long pi=v[pivot];
 long long ax;
 ax=v[r];
 v[r]=v[pivot];
 v[pivot]=ax;
 long long t=s;

 for(int i=s;i<r;i++)
{
         if(v[i]<=pi)
         {
          ax=v[i];
          v[i]=v[t];
          v[t]=ax;
          t++;
         }
}
ax=v[r];
v[r]=v[t];
v[t]=ax;

 return t;
}

void qsort(int s, int r)
{
 if(s<r)
        {
         int w=partitie(s,r,s+std::abs(v[s]%(r-s)));
         qsort(s,w-1);
         qsort(w+1,r);
        }
}

int main()
{
 ifstream f("algsort.in");
 ofstream g("algsort.out");
 f>>n;
 for(i=1;i<=n;i++) f>>v[i];
 f.close();
 qsort(1,n);
 for(i=1;i<=n;i++) g<<v[i]<<" ";
 g.close();
 return 0;
}