phoneix86
04-06-2009, 09:52
ho un piccolo problema con il quicksort in quanto nn riesco a capire xkè alla voce inizializza gli indici gli dà quell range ! qualcuno può spiegarm xkè?
int Partition(int a[], int p, int f)
{
int x,scambio;
int i,j,b;
i = (rand()%(f-p)+p);
x = a[i]; // pivot
i= p-1; j= f+1; // inizializza indici
printf("mostrami il pivot %d",x);
for(;;) {
while(a[--j]>x) ; // esce se a[j]<=x
while(a[++i]<x) ; // esce se a[i]>=x
if(i<j) {
scambio=a[i]; a[i]=a[j]; a[j]=scambio;
}
else break;
}
return j;
}
int Partition(int a[], int p, int f)
{
int x,scambio;
int i,j,b;
i = (rand()%(f-p)+p);
x = a[i]; // pivot
i= p-1; j= f+1; // inizializza indici
printf("mostrami il pivot %d",x);
for(;;) {
while(a[--j]>x) ; // esce se a[j]<=x
while(a[++i]<x) ; // esce se a[i]>=x
if(i<j) {
scambio=a[i]; a[i]=a[j]; a[j]=scambio;
}
else break;
}
return j;
}