Заполнить массив случайными числами и отсортировать его. Ввести число Х. Используя двоичный поиск, определить, есть ли в массиве число, равное Х. Подсчитать количество сравнений. Пример: Массив: 147392452 После сортировки: 122344579 Введите число Х: 2 Число 2 найдено. Количество сравнений: 2

15 Июн 2021 в 19:46
154 +1
0
Ответы
1

const randomArray = [];
const arrayLength = 10;
const maxNumber = 100;

// Заполнение массива случайными числами
for (let i = 0; i < arrayLength; i++) {
randomArray.push(Math.floor(Math.random() * maxNumber));
}

// Сортировка массива
randomArray.sort((a, b) => a - b);
console.log('Массив:', randomArray);

// Двоичный поиск
let x = 2;
let comparisons = 0;
let found = false;
let low = 0;
let high = randomArray.length - 1;

while (low <= high) {
let mid = Math.floor((low + high) / 2);
comparisons++;
if (randomArray[mid] === x) {
found = true;
break;
} else if (randomArray[mid] < x) {
low = mid + 1;
} else {
high = mid - 1;
}
}

if (found) {
console.log(Число ${x} найдено.);
} else {
console.log(Число ${x} не найдено.);
}

console.log('Количество сравнений:', comparisons);

17 Апр 2024 в 16:28
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир