Это неверное уточнение. В O-нотации логарифм может быть с любым основанием, т.к. два логарифма с разными основаниями отличаются друг от друга на мультипликативную константу.
Обнаружил, в чём была проблема. Она была не в самом дереве префиксов. Узким местом было чтение данных. Класс Scanner, который я использовал для этого, работает слишком медленно из-за большого количества проверок на соответствие типов и т.п. (хоть я и читал лишь строки функцией nextLine() и, по идее, никакие проверки не были нужны). Стоило заменить Scanner на BufferedReader и всё заработало за приемлемое время.
Спасибо за ответ. Я попробовал реализовать через дерево префиксов. Правда, несколько иначе, чем вы описали. Вроде бы, код работает корректно, но недостаточно быстро. Не могли бы вы посмотреть, может, я что-то написал неверно или неэффективно? pastebin.com/DKZzhvXA
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Это неверное уточнение. В O-нотации логарифм может быть с любым основанием, т.к. два логарифма с разными основаниями отличаются друг от друга на мультипликативную константу.