Выбрать соревнование | Задачи | Послать решение | Результаты проверки | Статистика по задачам | Вопросы и ответы | Результаты соревнования | Состояние сервера | Изменить данные | Управление командой | Помощь |
01/09/2007 | Основы программирования. Функции (31) |
Ограничения: время – 200ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Напишите функцию BinarySearch
, псевдокод для которой написан ниже.
int r,n,k;
...
int a[n];
...
r=BinarySearch(a,n,k);
...
В качестве решения необходимо отправлять файл, содержащий только определение функции!
Алгоритм BinarySearch (A,K)
// Входные данные: Массив A[0..., отсортированный
// в возрастающем порядке, и искомый ключ K
// Выходные данные: Индекс элемента массива, равного K,
// или —1, если такого элемента нет
l larr 0; r larr n -1
while l<=r do
quad m larr |__ (l+r)//2__|
quad if K =A[m]
quad quad quad return m
quad else if K < A[m]
quad quad quad r larr m - 1
quad else
quad quad quad l larr m + 1
return -1