Проверить реализацию бинарного поиска на корректность, оптимальность
Сделал реализацию бинарного поиска на 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;
}
}
Спасибо