Ich habe gewisse Zweifel, ob die im Code angegebene Methode korrekt ist oder etwas fehlt. Der Code läuft gut, aber ich denke immer noch, dass die Methode nicht geeignet ist. Es scheint einen Fehler zu haben. Hier ist der Code:Was ist falsch an der Methode dieses Codes?
// Java program to find an element x in a
// sorted array using Exponential search.
import java.util.Arrays;
class Test
{
// Returns position of first ocurrence of
// x in array
static int exponentialSearch(int arr[], int n, int x)
{
// If x is present at firt location itself
if (arr[0] == x)
return 0;
// Find range for binary search by
// repeated doubling
int i = 1;
while (i < n && arr[i] <= x)
i = i*2;
// Call binary search for the found range.
return Arrays.binarySearch(arr, i/2, Math.min(i, n), x);
}
// Driver method
public static void main(String args[])
{
int arr[] = {2, 3, 4, 10, 40};
int x = 10;
int result = exponentialSearch(arr, arr.length, x);
System.out.println((result < 0) ? "Element is not present in array" :
"Element is present at index " + result);
}
}
Dies ist die Methode, die die Klasse zurückgibt. Fehle ich einige Definitionen?
Sie sollten keinen Unterstrich vor dem privaten Variablennamen verwenden, es scheint, als ob Sie von Python wechseln. Was meinst du mit der Rückgabe der Klasse? – Sheshnath
Nein Ich habe einen Fehler in der "Differenz" -Methode im obigen Code..aber ich bin nicht in der Lage es zu finden – SQEnthusiast
Wählen Sie eine Namenskonvention und bleiben Sie dabei. Vorzugsweise die Standard-Java-Konvention. Ich würde empfehlen, Mitgliedervariablen auch nicht zu präfixisieren. –