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

Rispondi quotando