我正在编写一个类,当被调用时,将使用二进制搜索搜索特定的数字。该程序还将打印搜索所述数字的次数,并返回索引值。不幸的是,索引值总是返回-1,这是我设置的数字,当数组中不存在该值时。从包含数字1-131073
的文本文件中扫描数组无论如何,代码看起来像这样:
public static int binarySearch(int[] elements, int target)
{
int index = -1;
int count = 0;
int low = 0;
int high = elements.length-1;
int mid;
while(high>=low)
{
count++;
mid = (low+high)/2;
if(target < elements[mid])
{
high = mid - 1;
}
else if(target > elements[mid])
{
low = mid + 1;
}
else //if (target == elements[mid])
{
index = mid;
break;
}
}
System.out.println(count);
return index;
}
即使最后一条if else语句没有2个反斜杠,也不会影响索引号。
EDIT 好吧事实证明,我的二进制搜索的实际代码并不完美,但这不是问题,问题是我的实际测试人员。我读过字符串而不是读数字