Ciao a tutti!
Il noto algoritmo bubblesort può anche essere usato per ordinare in ordine alfabetico delle stringhe.
IL seguente file che ho scritto funziona perfettamente:Questo per gli array.codice:public class parole { public static void main (String[]args){ String [] num = new String [3]; num[0]= "c"; num[1]= "a"; num[2]= "b"; System.out.println("Si parte da: " + num[0]+" "+num[1]+" "+num[2]+" "); int n = num.length; int i=0; int j = 0; String tmp = ""; for(i=0;i<n-1;i++){ for(j=0;j<n-i-1;j++){ if(num[j].compareTo(num[j+1]) > 0 ){ tmp = num[j]; num[j] = num[j+1]; num[j+1]=tmp; } } } System.out.println(num[0]+" "+num[1]+" "+num[2]+" "); } }
Per i vettori dobbiamo usare la classe ArrayList,ed è qui che ho dei problemi.
Non riesco a capire perchè l'algoritmo,nonostante sia corretto non funzioni:Anche se è un po' fastidioso da leggere,la condizione verifica che il nome di un contatto sia "maggiore" (intendo per ordine alfabetico) al successivo.codice://Metodo che stampa tutte le info di tutti gli elementi della lista (vincolo:in ordine alfabetico) public void informazioni(){ int i = 0; int j = 0; for (i = 0;i < contatti.size()-1;i++){ for (j=0;j<contatti.size()-i-1;j++){ Persona contatto = contatti.get(i); if ( contatti.get(j).getNome().compareTo(contatti.get(j+1).getNome()) > 0 ){ contatto = contatti.get(j); contatti.set(j, contatti.get(j+1)); contatti.set(j+1, contatto); } } } }
Secondo me,il problema risiede nella variabile "contatto" che viene sovrascritta!
Se è cosi come ovviare a questo problema?
GRazie in anticipo![]()

Rispondi quotando