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!

codice:
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;	
	}