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