/* Ricerca Binaria. Assume che l'array a sia ordinato */ import javax.swing.JOptionPane; public class RicercaBinaria { public static void main(String[] args) { int x; int[] a = {10, 12, 15, 16, 25, 29, 46, 47, 48, 67, 68, 72, 73, 85, 93}; for (int i = 0; i < a.length; i++) System.out.print(a[i]+" "); System.out.println(); x = Integer.parseInt(JOptionPane.showInputDialog("\nInserisci l'elemento da trovare:")); int posizione=RicercaBinaria(a, x); if(posizione==-1) System.out.println("L'elemento "+x+" non e' presente"); else System.out.println("L'elemento "+x+" e' presente in posizione "+posizione); System.exit(0); } public static int RicercaBinaria(int[] v, int el) { // TUTTE LE print SERVONO SOLO A MOSTRARE IL FUNZIONAMENTO DELL'ALGORITMO int p, q, m; p = 0; q = v.length - 1; System.out.println("p\tm\tq"); while (p <= q) { m = (p + q) / 2; System.out.println(p + "\t" + "\t" + q); System.out.println("\t" + m); if (v[m] < el) p = m + 1; else if (v[m] > el) q = m - 1; else return m; } if (v[p] == el) return p; else return -1; } }