10 intの配列があり、バイナリ検索を使用して数値を検索していると仮定します。たとえば、数値を考えてみましょう。
1 2 3 4 5 6 7 8 9 10
そして私はこの方法を使用しています
static void binarySearch(int n, int[] a, int low, int high)
{
int mid = (high + low) / 2;
if(low > high)
System.out.println(n+" was not found after "+counter+" comparisons");
else if(a[mid] == n)
{
counter++;
System.out.println(n+" was found at position "+mid+" after "+counter+" comparisons");
}
else if(a[mid] < n)
{
counter++;
binarySearch(n, a, mid+1, high);
}
else
{
counter++;
binarySearch(n, a, low, mid-1);
}
}
メソッドbinarySearch(5、a、0、a.lenght)またはbinarySearch(5、a、0、a.lenght-1)を呼び出す適切な方法は何ですか
私は彼らが両方とも番号を見つけることを知っていますが、彼らは異なるインデックスでそれを見つけるでしょう。したがって、より多くの比較を行う