PDA

Visualizza la versione completa : [C] QuickSort in overflow prima di iniziare


Il Pazzo
29-06-2007, 09:29
int partiziona(int v[], int left, int right){
int x = v[(left + right) / 2];

while((v[left] < x) && (left < right)) left++;
while((v[right] > x)&& (right > left)) right--;

while(left < right){
int tmp = v[left];
v[left] = v[right];
v[right] = tmp;

left++; right--;

while(v[left] < x) left++;
while(v[right] > x) right--;
}

return left;
}

int* quick(int v[], int left, int right){
if(left < right){
int mezzo = partiziona(v, left, right);

quick(v, left, mezzo);
quick(v, mezzo + 1, right);
}

return v;
}


Se faccio partire normalmente il programma semplicememnte mi dice "Premere un tasto per continuare"...
Debbuggando mi dice "Eccezzione non gestita.... Stack in overflow"... ed esattamente me lo dice appena entro dentro la funzione quick....

Dov che sbagliato il mio codice????


grazie a tutti

labrosan
29-06-2007, 12:26
Ciao,

Devi semplicemente dichiarare quick come void quick(...).

Non hai bisogno di ritornare il vettore v.

Ciao Ciao

Loading