export function binarySearch(sortedNumbers: number[], n: number) { // Определяем точки начала и конца поиска let start = 0; let end = sortedNumbers.length; while (start < end) { // Находим элемент в середине массива const middle = Math.floor((start + end) / 2); const value = sortedNumbers[middle]; // Сравниваем аргумент со значением в середине массива if (n === value) { return middle; } // Если аргумент меньше, чем серединное значение, разделяем массив пополам // Теперь конец массива — это его бывшая середина if (n < value) { end = middle; // Иначе началом массива становится элемент, идущий сразу за «серединой» } else { start = middle + 1; } } // если искомое число не найдено, возвращаем -1 return -1; }