Как применить алгоритм «Разделяй и Властвуй» к неотсортированному массиву?
Пока идея только отсортировать массив, но, думаю, это не эффективно
Сама задача, которую я решаю:
Напишите программу на основе разделяй и властвуй позволяющую эффективно проверять принадлежность пары значений массиву. Например, пара (2,3) принадлежит массиву [1,2,3,5,7,11,13,17], а пара (3,4) - нет. Можно считать, что количество запросов многократно превышает размер массива. В комментариях напишите, почему перебор - эффективное
>количество запросов многократно превышает размер массива
Сортировка работает за O(n*log(n)), бинпоиск будет работать за O(log(n)). Суммарная сложность будет O(n*log(n)) при количестве запросов порядка n.
Поиск полным перебором будет работать за O(n) для каждого запроса. Суммарная сложность будет не лучше O(n ^ 2), что очевидно хуже.
Быстрее можно только с построением hash-таблицы. Но это дополнительная память и не «Разделяй и Властвуй».