我正在尝试将这种递归方法转换为迭代方法,但我有点卡住了,因为我的书解释得不够多。此方法在两个值之间的数组中搜索特定值并返回索引。任何帮助或正确方向的观点将不胜感激。
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;
}