我正在尝试将这个递归方法转换为迭代方法,但是我有些困惑,因为我的书没有足够的解释。这个方法在两个值之间的数组中搜索一个特定的值,并返回其索引。如能提供任何帮助或指点方向都将不胜感激。
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;
}