Pagini recente » Cod sursa (job #1441928) | Cod sursa (job #2483859) | Cod sursa (job #171607) | Cod sursa (job #1270808) | Cod sursa (job #773013)
Cod sursa(job #773013)
#include <fstream>
#include <cstdio>
#include <time.h>
#include <stdlib.h>
using namespace std;
FILE *f = fopen("algsort.in","r");
ofstream g("algsort.out");
int n, v[500002], i, j, aux, ii0, jj0;
int piv;
inline int poz(int i, int j){
ii0=1;
jj0=0;
piv = j - rand()%(j-i);
aux = v[piv];
v[piv] = v[j];
v[j] = 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));
fscanf(f,"%d",&n);
for(i=1; i<=n; i++)
fscanf(f,"%d",&v[i]);
quicksort(1, n);
for(i=1; i<=n; i++)
g<<v[i]<<' ';
return 0;
}