View Single Post
Old 11-11-2009, 09:56   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da cybergabry Guarda i messaggi
Il warning è: "Comparable is a raw type. References to generic type Comparable<T> should be parameterized"
Non preoccuparti di questo warning, per il momento, il tuo codice è sintatticamente corretto.
Se sei curioso, una spegazione del warning la trovi in questo post.

Quote:
Originariamente inviato da cybergabry Guarda i messaggi
In effetti il programmino non funziona perchè mi dice sempre che l'elemento non è presente nell'array anche quando invece è presente.
Ho letto al volo e ho notato questo:
Codice:
public static int binario (Comparable arr[], Comparable elem, int inizio, int fine)
{
		int centro = (inizio + fine)/2;
		if (inizio > fine)
			return -1;
		else if (elem == arr[centro])
			return centro;
		else if (elem.compareTo(arr[centro]) > 0)
			return binario (arr, elem, centro+1, fine);
		else
			return binario (arr, elem, inizio, centro-1);
	}
}
se vuoi verificare l'uguaglianza tra due Comparable devi passarne uno come argomento al metodo compateTo dell'altro: se l'output restituito è zero allora sono considerati equivalenti (in termini di ordinamento).
Codice:
if (elem.compareTo(arr[centro]) == 0)
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 11-11-2009 alle 11:55.
banryu79 è offline   Rispondi citando il messaggio o parte di esso