execretor (Normal User)
Newbie
Messaggi: 17
Iscritto: 26/10/2006
|
qualcuno mi può dare il codice dell'ordinamento
quicksort??
io ho fatto solo bubble-sort, inserzione e selezione. Questo non l'ho mai sentito nominare!
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Codice sorgente - presumibilmente C++ |
void q_sort(int numbers[], int ileft, int iright) { int l_hold = ileft; int r_hold = iright; int pivot = numbers[ileft]; int t; while (ileft < iright) { while ((numbers[iright] >= pivot) && (ileft < iright)) iright--; if (ileft != iright) { t = numbers[ileft]; numbers[ileft] = numbers[iright]; numbers[iright] = t; ileft++; } while ((numbers[ileft] <= pivot) && (ileft < iright)) ileft++; if (ileft != iright) { t = numbers[iright]; numbers[iright] = numbers[ileft]; numbers[ileft] = t; iright--; } } numbers[ileft] = pivot; pivot = ileft; ileft = l_hold; iright = r_hold; if (ileft < pivot) q_sort(numbers, ileft, pivot-1); if (iright > pivot) q_sort(numbers, pivot+1, iright); } void quickSort(int numbers[], int array_size) { q_sort(numbers, 0, array_size - 1); }
|
Ultima modifica effettuata da pierotofy il 08/02/2007 alle 3:24
|
|
execretor (Normal User)
Newbie
Messaggi: 17
Iscritto: 26/10/2006
|
Sono andato a vedere su wikipedia e ho visto che è spiegato molto bene.
Grazie, mi hai salvato la vita
|
|
lorelapo (Ex-Member)
Expert
Messaggi: 355
Iscritto: 28/02/2007
|
Codice sorgente - presumibilmente C++ |
void swap(int *p, int *p2) { int ptem=*p; *p=*p2; *p2=ptem; } void q_sort(int *vet, int sx, int dx) { if(sx>=dx)return; int i,last=sx; swap(&vet[sx],&vet[(sx+dx)/2]); for(i=sx+1;i<=dx;i++) if(vet[sx]>vet[i]) swap(&vet[i],&vet[++last]); swap(&vet[last],&vet[sx]); q_sort(vet,sx,last-1); q_sort(vet,last+1,dx); } void quicksort(int *vet, int length) { q_sort(vet,0,length); }
|
Quello della libreria standard è più meno così che funziona ce l'ho sul mio K&R, solo che quello della libreria richiede due puntatore alle funzioni per il confronto e lo scambio. Cambiano i nomi, per esempio non ti semplifica il tutto come abbiamo fatto io e Piero con quicksort() e nella libreria il mio q_sort() è qsort()
|
|
ozmosis (Member)
Newbie
Messaggi: 7
Iscritto: 18/03/2007
|
Ultima modifica effettuata da ozmosis il 17/04/2007 alle 13:06 |
|
ozmosis (Member)
Newbie
Messaggi: 7
Iscritto: 18/03/2007
|
Wikipedia e Google sono i migliori amici di chi usa il pc...seriamente...
|
|
lorelapo (Ex-Member)
Expert
Messaggi: 355
Iscritto: 28/02/2007
|
Una persona veramente seria sa rendersi conto che non siano le uniche risorse esistenti, ozmosis non sarai certo perfetto perchè li sai usare, internet è di tutti.
Ultima modifica effettuata da lorelapo il 14/04/2007 alle 15:42 |
|
ozmosis (Member)
Newbie
Messaggi: 7
Iscritto: 18/03/2007
|
Postato originariamente da lorelapo:
Una persona veramente seria sa rendersi conto che non siano le uniche risorse esistenti, ozmosis non sarai certo perfetto perchè li sai usare, internet è di tutti. |
Non riesco a leggere la riga in cui dico di essere perfetto. Non intedevo dire questo. Intendevo risaltare il valore di due motori di ricerca così importanti sotto tutti i punti di vista. E poi, non ho nemmeno scritto di "saperli usare" (poi mi spieghi che significa)... |
|