
Заполнить массив случайными числами и отсортировать его. Ввести число x. Используя двоичный поиск,
определить, сколько чисел, равных x, находится в массиве. ЯЗЫК PYTHON Пример: Массив: 1 4 7 3 9 2 4 5 2 После сортировки: 1 2 2 3 4 4 5 7 9 Введите число x:4 Число 4 встречается 2 раза

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

Ответ:
from random import randint
# Создание списка,
# его сортировка по возрастанию
# и вывод на экран
a = []
for i in range(10):
a.append(randint(1, 50))
a.sort()
print(a)
# искомое число
value = int(input())
mid = len(a) // 2
low = 0
high = len(a) - 1
while a[mid] != value and low <= high:
if value > a[mid]:
low = mid + 1
else:
high = mid - 1
mid = (low + high) // 2
if low > high:
print("Такого значения нет")
else:
if (mid == 0 and a[1] != a[0]) or (mid == len(a) - 1 and a[mid - 1] != a[mid]):
print(1)
else:
q = 0
for i in range(mid, len(a)):
if a[i] == a[mid]:
q += 1
else:
break
for i in range(mid - 1, 0, -1):
if a[i] == a[mid]:
q += 1
else:
break
print(q)
Чтобы убрать вывод массива просто на 10-й строке убери print(a), а для вывода неотсортированного массива вставь после 8-й строки.



Вот Python-код, который выполняет задачу, описанную в вашем запросе:
pythonimport random
# Генерируем массив случайных чисел
array = [random.randint(1, 10) for _ in range(10)]
print("Массив:", array)
# Сортируем массив
array.sort()
print("После сортировки:", array)
# Вводим число x
x = int(input("Введите число x: "))
# Функция для двоичного поиска
def binary_search(arr, target):
left, right = 0, len(arr) - 1
count = 0
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
count += 1
left = mid + 1
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return count
# Ищем число x в массиве и выводим результат
count_x = binary_search(array, x)
print(f"Число {x} встречается {count_x} раза")
Этот код сначала создает массив случайных чисел, затем сортирует его и запрашивает ввод числа x. Далее, он использует функцию binary_search
для выполнения двоичного поиска и подсчитывает, сколько раз число x встречается в отсортированном массиве.


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

Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili