Concetti Chiave
- Il metodo ricercaBinaria effettua una ricerca binaria su un array ordinato di interi per trovare uno specifico valore.
- La ricerca si basa sul confronto dell'elemento centrale dell'array con il valore cercato, riducendo lo spazio di ricerca a metà ad ogni iterazione.
- Utilizza tre variabili principali: sinistra, destra e centro per definire e modificare dinamicamente lo spazio di ricerca.
- Il metodo restituisce la posizione dell'elemento cercato se trovato; altrimenti, restituisce -1.
- Un esempio di test del metodo è fornito nel main, dove ricerca il numero 27 in un array specificato.
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 ricercaBinaria (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.length; while (posizione == -1 && sinistra 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 main(String[] args) { System.out.println(ricercaBinaria(new int[] { 5, 7, 11, 4, 3, 27, 42 }, 27)); } }