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

Rispondi quotando