1
コードに記載されているメソッドが正しいかどうか不明な点があります。コードはうまく動作しますが、私はまだこのメソッドが適切ではないと思います。バグがあるようです。コードは次のとおりです。このコードのメソッドで何が問題になっていますか?
// 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);
}
}
これはクラスを返すメソッドです。私はいくつかの定義が欠けていますか?
プライベート変数名の前にアンダースコアを使用しないでください。これは、Pythonから切り替えるようです。 クラスを返すことは何を意味しますか? – Sheshnath
いいえ、私は上記のコードの "差異"メソッドのバグがあります。しかし、私はそれを見つけることができません – SQEnthusiast
命名規則を選んでそれに固執します。好ましくは、標準のJavaの規約です。私はプレフィックスメンバ変数の習慣にも反対することをお勧めします。 –