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:
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]+" ");
}
}
Questo per gli array.
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:
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);		
			}
		}
	}	
}
Anche se è un po' fastidioso da leggere,la condizione verifica che il nome di un contatto sia "maggiore" (intendo per ordine alfabetico) al successivo.
Secondo me,il problema risiede nella variabile "contatto" che viene sovrascritta!
Se è cosi come ovviare a questo problema?

GRazie in anticipo