Concetti Chiave
- Il metodo ricercaBinaria implementa l'algoritmo di ricerca binaria per trovare un elemento in un array ordinato di interi.
- La ricerca avviene suddividendo l'array in due metà e scartando quella che non contiene il valore cercato.
- Il metodo inizializza la variabile posizione a -1 per indicare che l'elemento non è stato trovato inizialmente.
- Il ciclo while continua fino a trovare l'elemento o esaurire lo spazio di ricerca, aggiornando gli indici sinistra e destra.
- La funzione main fornisce un esempio di utilizzo, ma l'array di input deve essere ordinato per il corretto funzionamento del metodo.
Tema 20
Scrivere un metodo ricercaBinaria che riceve in ingresso un array ordinato di interi V e uno specifico elemento da cercare al suo interno. Il metodo suddivide l’array in due metà e scarta, di volta in volta, la metà che di certo non contiene il valore cercato.
public class tema20 { public static int ricercaBinariaria (int[] V, int valoreCercato) { // inizializziamo il valore della variabile posizione a -1 int posizione = -1; int sinistra; // indice del primo elemento dello spazio di ricerca int destra; // indice del primo elemento oltre lo spazio di ricerca int centro; // indice dell'elemento centrale dello spazio di ricerca // inizialmente lo spazio di ricerca comprende tutti gli elementi di V sinistra = 0; destra = V.
Esecuzione del programma
length; while (posizione == -1 && sinistra posizione = centro; else if (V[centro] > valoreCercato) // se l’elemento centrale è maggiore di valoreCercato, la ricerca continuerà // nella metà sinistra // dell’array e quindi centro diverrà il nuovo estremo destro dello spazio di // ricerca destra = centro; else // altrimenti, la ricerca continuerà nella metà destra dell’array e centro+1 // diverrà il nuovo // estremo sinistro dello spazio di ricerca sinistra = centro+1; } return posizione; } /* Applicazione di Prova */ public static void mainain(String[] args) { System.out.println(ricercaBinaria(new int[] { 5, 7, 11, 4, 3, 27, 42 }, 27)); } }
Domande da interrogazione
- Qual è lo scopo del metodo `ricercaBinaria`?
- Come viene determinato l'indice dell'elemento cercato?
- Qual è il valore restituito dal metodo se l'elemento non viene trovato?
Il metodo `ricercaBinaria` ha lo scopo di cercare un elemento specifico all'interno di un array ordinato di interi, suddividendo l'array in due metà e scartando quella che non contiene il valore cercato.
L'indice dell'elemento cercato viene determinato confrontando l'elemento centrale dell'array con il valore cercato; se coincidono, si restituisce l'indice centrale, altrimenti si continua la ricerca nella metà appropriata dell'array.
Se l'elemento non viene trovato, il metodo restituisce -1, indicando che il valore cercato non è presente nell'array.