【发布时间】:2017-06-14 11:19:50
【问题描述】:
我是一个初学者 java 学习者,这里有一个小程序,它输出 int 数组中搜索到的 int 值的索引。这是代码
public static void main(String[] args) {
int rank =findNumber(7, new int[]{2, 4, 7, 10, 11, 45, 50, 59, 60, 66, 69, 70, 79});
System.out.println("Your number's index is " + rank);
}
public static int findNumber(int key, int... numbers) {
int low = 0;
int high = numbers.length - 1;
int mid = (low + high) / 2;
int rank = 0;
for (int i = low; i < high; i++) {
if (key < numbers[mid]) {
high = mid;
mid = (low + high) / 2;
} else if (key > numbers[mid]) {
low = mid;
mid = (low + high) / 2;
} else {
rank = mid;
return rank;
}
}
return rank;
}
问题是它适用于数组中的所有数字,除了 7。我试图通过调试找到它,但一无所获。
谁能告诉我这里有什么问题?
【问题讨论】:
标签: java arrays search binary int