この再帰的な方法を反復に変換しようとしていますが、私の本では十分に説明されていないため、少し行き詰まっています。このメソッドは、特定の値の 2 つの値の間の配列を検索し、インデックスを返します。正しい方向への助けやポイントをいただければ幸いです。
public static int binarySearch(int anArray[], int first, int last, int value) {
int index;
if (first > last) {
index = -1;
} else {
int mid = (first + last) / 2;
if(value == anArray[mid]) {
index = mid;
} else if(value < anArray[mid]) { //Point x
index = binarySearch(anArray, first, mid - 1, value);
} else { //Point Y
index = binarySearch(anArray, mid + 1, last, value);
}
}
return index;
}