Информатика, вопрос задал impostor994 , 2 года назад

Заполнить массив случайными числами и отсортировать его. Ввести число 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

Ответы на вопрос

Ответил ykoly1604
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) # итог

Объяснение:

Новые вопросы