Cod sursa(job #1053648)

Utilizator albupetruFMI Albu Petru albupetru Data 12 decembrie 2013 21:17:09
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include<cstdlib>
using namespace std;

int n,i,v[10000];

int partitie(int s,int r, int pivot)
{
 int pi=v[pivot];
 swap(v[r],v[pivot]);

 int t=s;

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

 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;
}