Pagini recente » Cod sursa (job #2512481) | Cod sursa (job #2114352) | Istoria paginii utilizator/abigailcozmiuc | Istoria paginii preoni-2008/runda-finala/solutii | Cod sursa (job #1053648)
#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;
}