Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao a tutti,
sto imparando un po' di algoritmi ed oggi ho provato ad implementare un quick sort.
(Credo) di aver capito bene come funziona, tuttavia trovo parecchia difficoltà ad implementarlo.
Non capisco cosa sbaglio. Credo sia nella struttura dati...
Codice sorgente - presumibilmente C#
void Distribuisci(int vettore[], int sinistra, int destra){
if(sinistra < destra){//Controllo che la segmentazione continui nel modo corretto
int pivot =(sinistra+destra)/2;//Come pivot scelgo l'elemento centrale
int appoggio[n];//Array di appoggio per salvare momentaneamente
int c =0;//Contatore elementi array appoggio
int pos;//posizione finale del pivot
//Metto in appoggio i numeri più piccoli di vettore[pivot]
for(int i=sinistra; i<=destra; i++){
if(i!=pivot && vettore[i]< vettore[pivot]){
c++;
appoggio[c]=vettore[i];
}
}
//Metto in appoggio il pivot
c++;
pos = c;
appoggio[c]= vettore[pivot];
//Metto in appoggio i numeri più grandi di vettore[pivot]
for(int i=sinistra; i<=destra; i++){
if(i!=pivot && vettore[i]>= vettore[pivot]){
c++;
appoggio[c]=vettore[i];
}
}
//Aggiorno situazione
for(int i=sinistra; i<=destra; i++){
vettore[i]= appoggio[i];
}
//Ricorsione per ordinare la parte a sinistra e a destra del pivot