Pagini recente » Cod sursa (job #1586097) | Cod sursa (job #1085390) | Cod sursa (job #1784367) | Cod sursa (job #2786153) | Cod sursa (job #773008)
Cod sursa(job #773008)
#include <fstream>
#include <time.h>
#include <stdlib.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, v[500002], i, j, aux, ii0, jj0;
int piv;
int poz(int i, int j){
ii0=0;
jj0=-1;
piv = i + rand()%(j-i);
aux = v[piv];
v[piv] = v[i];
v[i] = aux;
while(i!=j)
{
if(v[i]>v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
aux=-ii0;
ii0=-jj0;
jj0=aux;
}
i+=ii0;
j+=jj0;
}
return i;
}
void quicksort(int p, int u){
int k;
if(p<u)
{
k=poz(p, u);
quicksort(p, k-1);
quicksort(k+1, u);
}
}
int main(){
srand(time(0));
f>>n;
for(i=1; i<=n; i++)
f>>v[i];
quicksort(1, n);
for(i=1; i<=n; i++)
g<<v[i]<<' ';
return 0;
}