Дан одномерный массив,вывести на экран те элементы которые больше последнего элемента массива. Организовать бинарный поиск в элементах массива.

29 Сен 2019 в 02:41
206 +1
0
Ответы
1

Пример реализации на Python:

def binary_search(arr, target):
left = 0
right = len(arr) - 1
result = -1
while left <= right:
mid = left + (right - left) // 2
if arr[mid] > target:
result = mid
right = mid - 1
else:
left = mid + 1
return result
def main():
arr = [3, 5, 2, 8, 1, 9, 4] # Пример массива
if not arr: # Если массив пустой
print("Массив пустой")
return
last_element = arr[-1]
print("Элементы массива, которые больше последнего элемента:")
for i in range(len(arr) - 1):
if arr[i] > last_element:
print(arr[i])
greater_values = []
for i in range(len(arr) - 1):
if arr[i] > last_element:
greater_values.append(arr[i])
target = last_element
greater_values.sort()
for value in greater_values:
result = binary_search(greater_values, value)
if result != -1:
print(f"Бинарный поиск: Элемент {value} находится в позиции {result}")
if __name__ == "__main__":
main()

Этот код сначала выводит элементы массива, которые больше последнего элемента. Затем он сортирует эти элементы и использует бинарный поиск для нахождения их индексов в отсортированном массиве.

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