Estratto del documento

Esercizio di laboratorio

Argomento: algoritmi di ordinamento, ordinamento di stringhe

Realizzare un algoritmo di ordinamento per dati di un array che procede in questo modo:

  • Si scandisce l'array a partire dall'ultimo indice fino al primo indice, e si confronta ogni coppia di elementi adiacenti, scambiandoli se non rispettano il loro ordinamento relativo (cioè se il valore nell'elemento di indice superiore è maggiore di quello nell'elemento di indice inferiore).
  • Al termine di questa prima scansione, il valore minimo contenuto nell'intero array è contenuto nell'elemento di indice 0 dell'array.
  • Il passo successivo è identico al precedente, ma termina dopo aver esaminato l'elemento di indice 1: al termine di questa seconda scansione, anche l'elemento di indice 1 dell'array contiene l'elemento corretto.
  • Si itera il procedimento fino al completo ordinamento dell'array.

Questo algoritmo prende il nome di ordinamento a bolle (bubbleSort). Infatti, se si considera l'array come se fosse disposto verticalmente, con la cella di indice 0 in alto, lo spostamento di valori effettuato dall'algoritmo è simile al movimento di bolle che gorgogliano verso l'alto.

Soluzione

Il metodo bubbleSort, descritto nel testo dell'esercizio, necessita di due cicli annidati. Inoltre abbiamo isolato l'operazione di scambio tra due elementi dell'array in un metodo ausiliario swap.

Prestare attenzione al fatto che il confronto di ordinamento tra stringhe avviene attraverso il metodo compareTo.

// ------------ alg. di ordinamento: bubbleSort --------

public static void bubbleSort(String[] v, int vSize){ for (int i = 0; i < vSize-1; i++) //attenzione alla formulazione
for (int j = vSize-1; j > i; j--) //di questi due cicli
if (v[j].compareTo(v[j-1]) < 0)
swap(v, j, j-1);}

private static void swap(String[] v, int i, int j){ String s = v[i];
v[i] = v[j];
v[j] = s;}

Anteprima
Vedrai una selezione di 1 pagina su 1
Informatica I - Esercizi bubbleSort Pag. 1
1 su 1
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher enricopava di informazioni apprese con la frequenza delle lezioni di Informatica 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Avanzini Federico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community