Правильный способ алгоритма двоичного поиска - PullRequest
0 голосов
/ 27 сентября 2019

Я только что узнал об алгоритме двоичного поиска и попытался его реализовать.Я использовал несколько тестовых случаев, и, кажется, работает нормально.Однако, когда я проверял 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;
}
...