你用eclipse吗,如果不用的话,抓紧上网找找,安上一个.学会查看错误堆栈.
有两个错误:1.数组长度长度不能大于等于array.length,因为下表从0开始的.2.在写 if 的时候,按照最佳实践,在后面加上对应对额大括号.你把代码两个方法这么改一下就行了.另外,还有很大的提升空间,加油吧.
public int BinarySeachFailI(int[] a, int x) { // 小于x的最大元素位置i
int m = 0;
for (int i = a.length - 1; i >= 0; i--) {
if (a[i] < x) {
m = i;
break;
}
}
return m;
} public int BinarySeachFailJ(int[] a, int x) { // 大于x的最小元素位置j
int k = 0;
for (int j = 0; j <= a.length - 1; j++) {
if (a[j] > x) {
k = j;
break;
}
}
return k;
}