Вопрос задан 23.06.2023 в 19:31. Предмет Информатика. Спрашивает Мерендзак Яна.

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мамедов Али.

Ответ:

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-й строки.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот Python-код, который выполняет задачу, описанную в вашем запросе:

python
import 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 встречается в отсортированном массиве.

0 0

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос