Проверить реализацию бинарного поиска на корректность, оптимальность

Сделал реализацию бинарного поиска на Java. Можно пожалуйста оценить корректность реализации алгоритма и его оптимальность?

public class BinarySearch {
    public static void main(String[] args) {
        int[] testData1 = {1, 3, 5, 7, 9};
        int[] testData2 = {1};
        System.out.println(binarySearch(testData1, 1));
        System.out.println(binarySearch(testData2, 5));
    }

    public static int binarySearch(int[] data, int item) {
        int result = -1;
        int low = 0;
        int high = data.length - 1;
        int mid = (low + high) / 2;
        while (low < high) {
            if (data[mid] == item) {
                return mid;
            } else if(data[mid] < item) {
                low = mid + 1;
            } else {
                high = mid - 1;
            }
            mid = (low + high) / 2;
        }

        return result;
    }
}

Спасибо


Ответы (0 шт):