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