ciao ragazzi, qualcuno mi può dare una mano a trovare gli errori per piacere?

grazie..

questo programma effettua la ricerca di un
intero in un array ordinato di interi utilizzando l'algoritmo Interpolation Search.


import java.util.Arrays;
import java.util.Scanner;

public class InterpolationSearcher {

/* Variabili d'istanza */

public static final int lungArray = 20; //Lunghezza dell'array generato.
private static int[] randomArray; //Array casuale generato.

private final int[] intArray; // Array ordinato degli interi su cui effettuare la ricerca.

public InterpolationSearcher(int[] iArray) {

intArray = iArray;
}

/**
cerca l'intero key nell'array intArray e ne restituisce la posizione
(o -1 se la chiave non è presente nell'array).

public int lookFor( int key) {
final int n = intArray.length;
int l = 0;
int h = n - 1;


while ((intArray[l] > key) && (key <= (intArray[n]))) {
int m = l + ((key - intArray[l]) * (h - l)) / (intArray[h] - intArray[l]);

if (this.intArray [m] < key) {
l = m + 1;
} else if (intArray [m] > key) {
h = m - 1;
} return m;

}
if (intArray [l] == key ){

return l;
} else {
return -1;
}



}



public static void main( String[] args) {


int[] randomArray = new int[lungArray];
for (int i = 0; i < lungArray ; i++) {
randomArray[i] = (int) (Math.random() * 201) - 100;

Arrays.sort(randomArray);
System.out.print( randomArray[i] +" ");
}


InterpolationSearcher objIntero;
Scanner in = new Scanner(System.in);
int key = in.nextInt();

objIntero = new InterpolationSearcher(randomArray);

int n = objIntero.lookFor(key);

if (n == -1) {
System.out.printf( "ELEMENTO NON TROVATO");
} else {

System.out.println("ELEMENTO IN POSIZIONE");
}
}

}