_stan
(320 punti)
1' di lettura

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