Я только что узнал об алгоритме двоичного поиска и попытался его реализовать.Я использовал несколько тестовых случаев, и, кажется, работает нормально.Однако, когда я проверял GeeksforGeeks, было довольно много различий в том, как они обрабатывали индексацию.Может кто-нибудь пролить свет на то, хороша моя реализация или нет.А если нет, то как бы это не сработало?
Вот мой код:
static int binarySearch(int arr[], int i, int r, int x) {
if(r > 1) {
int middle = r/2;
if(arr[middle] == x) {
return middle;
}
if(arr[middle] > x) {
return binarySearch(arr, i, middle, x);
}else {
return binarySearch(arr, middle, r+1, x);
}
}
return -1;
}