@TonyGrouse1216

Почему не работает бинарный поиск в js?

Здравствуйте, у меня не работает бинарный поиск, всегда выводится "-1", я думаю что проблема в цикле и он просто игнорируется, хотя я пытался найти решение в интернете, но у меня точно такой же код, как и у других людей, но у них работает. Заранее спасибо за помощь.
'use strict';

function binarySearch(arr, item) {
    let low = 0,
        high = arr.lenght - 1;

    while (low <= high){
        let mid = Math.floor((low + high) / 2);
        if (arr[mid] < item){
            low = mid + 1;
        }
        if (arr[mid] > item){
            high = mid - 1;
        }else {
            return mid;
        }
    }
    return -1;
}

const array = [1,2,3,4,5,6,7,8,9,10];
console.log(binarySearch(array, 9));
  • Вопрос задан
  • 86 просмотров
Решения вопроса 2
Lynn
@Lynn
nginx, js, css
lenght !== length
Ответ написан
Комментировать
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Потому, что не arr.lenght, а arr.length. А ещё ошибка в if'ах
function binarySearch(arr, item) {
    let low = 0;
    let high = arr.length - 1;

    while (low <= high) {
        let mid = (low + high) >> 1;
        if (arr[mid] < item) {
            low = mid + 1;
        } else if (arr[mid] > item) {
            high = mid - 1;
        } else {
            return mid;
        }
    }
    return -1;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы