Ciao a tutti, ho un problema con la ricerca binaria. Creo un arrayList e lo riempio con un while e fin qui tutto bene l'arraylist viene riempito...adesso ordino l'arraylist e lo stampo... viene anche ordinato, provo a fare la ricerca e mi restituisce null per i dati che si trovano nella posizione 0 e nell'ultima posizione...come mai?? dove sbaglio?? grazie a tutti!
public String ricercaPerNome(String nome){
int low = 0;
int high = persone.size()-1;
while(low<= high){
int mid = (low+high)/2;
int diff = nome.compareToIgnoreCase(persone.get(mid).getNome());
if(diff ==0)
return persone.get(mid).getNome();
else
if(diff <0)
low = mid+1;
else
high = mid-1;
}
return null;
}