在二进制搜索实现中获取编译错误

时间:2016-09-27 07:49:39

标签: algorithm binary-search

我正在实施二进制搜索算法,但我面临返回语句问题。这是我的方法 binarySearch()实现

SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');

任何帮助都将不胜感激。

由于

2 个答案:

答案 0 :(得分:3)

可能在没有值的数组上调用此方法。

你可以

return 0; 

在方法调用结束时。还是......

throw new RuntimeException("Value not found in array");

适用于此代码的任何人。

答案 1 :(得分:1)

您的函数不会返回所有路径。

  public static int binarySearch(int[] a, int n, int x) {

    int start = 0;
    int end = n - 1;
    int result = 0; // Or something you define yourself for not found case

    while (start <= end) {
        int mid = (start + end) / 2;
        if (a[mid] == x) {
            result = mid;
        } else if (a[mid] < x) {
            start = mid + 1;
        } else {
            end = mid - 1;
        }
    }
    return result;
}