Partendo dal fatto che dire che un cosa "è sbagliata" in campo della programmazione non vuol dire nulla, se non integrata da altro come ho un eccezione a runtime, ho un errore di compilazione...
Dal codice che vedo suppongo che sia la seconda in quanto hai inserito la dichiarazione del metodo "stamp" all'interno del metodo "search" cosa che ovviamente non è permessa.
Oltretutto la firma del metodo "stamp" non è corretta in quanto non hai tipato il parametro array.
codice:package it.temp; public class InteriArray { int[] array; // Costruttori public InteriArray(int grandezza) { array = new int[grandezza]; Random generator = new Random(); for (int i = 0; i < grandezza; i++) { i = generator.nextInt(99); array[i] = i; } } // Metodi /** ordinamento */ public void Ordinamento() { Arrays.sort(array); } /** * ricerca binaria * * @param v * il valore da cercare * @return true o false */ public boolean search(int v) { int low = 0; int high = array.length - 1; while (low <= high) { int mid = (low + high) / 2; int diff = array[mid] - v; if (diff == 0) return true; else if (diff < 0) low = mid + 1; else high = mid - 1; } return false; } /** Stampa Array */ public void stamp(int[] array) { for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } }

Rispondi quotando