我对java的二进制搜索在搜索后不会计算或打印正确的索引值

时间:2018-02-07 16:47:19

标签: java search binary-search

我正在编写一个类,当被调用时,将使用二进制搜索搜索特定的数字。该程序还将打印搜索所述数字的次数,并返回索引值。不幸的是,索引值总是返回-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 好吧事实证明,我的二进制搜索的实际代码并不完美,但这不是问题,问题是我的实际测试人员。我读过字符串而不是读数字

0 个答案:

没有答案