Предмет: Информатика,
автор: impostor994
Заполнить массив случайными числами и отсортировать его. Ввести число x.Используя двоичный поиск, определить, есть ли в массиве число, равно x.Подсчитать количество сравнений. Обязательно комментарий в каждой строке кода, ЯЗЫК PYTHON
Пример:
Массив : 1 4 7 3 9 2 4 5 2
После сортировки : 1 2 2 3 4 4 5 7 9
Введите число x: 2
Число 2 найдено
Количество сравнений: 2
Ответы
Автор ответа:
1
Ответ:
from random import randint
ms = [randint(0, 9) for i in range(15)] #заполнение массива (списка)
ms.sort()# сортировка
count = 0
print(ms)
x = int(input())
mid = len(ms) // 2
low = 0
high = len(ms) - 1
while 1:
mid = len(ms) // 2
low = 0
high = len(ms) - 1
while ms[mid] != x and low <= high:
if x > ms[mid]:
low = mid + 1
else:
high = mid - 1
mid = (low + high) // 2
if low > high:
break
else:
ms.pop(mid)
count += 1
print("колво чисел", x, "-", count) # итог
Объяснение:
Похожие вопросы
Предмет: Английский язык,
автор: kaarina
Предмет: Русский язык,
автор: abarzenkov
Предмет: Русский язык,
автор: Ivan0072002
Предмет: Математика,
автор: Anastasiya2610
Предмет: Геометрия,
автор: попроривоветот