Member
Статус: Не в сети Регистрация: 17.03.2005 Откуда: Чебоксары
Задание такое:
Дан массив чисел (каких неизвестно).
Надо найти в массиве два различных элемента в сумме дающих заданное
значение.
Сложность алгоритма не должна быть больше O(nlog2n).
Вроде следующий:
Пусть числа ai, сумма S.
1. Сортируешь ai ( за nlnn ).
2. Для каждого (по порядку) a=ai ищешь b=S-a. Поиск в сорт ai это lnn. Всего n вариантов a. => nlnn.
3. Сложность nlnn + nlnn = nlnn.
Денис Черемисов В общем слущае я могу доказать что самый лучший алгорит сложнее чем линейный.
Но если числа лежат в некотором диапазоне, то есть линейный алгоритм (например 0..255 )(хотя я не проверял).
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения