Какой термин я могу использовать для описания чего-либо со сложностью O (N log N)?
Например:
O (1): постоянная
O (log N): логарифмический
O (N): линейный
O (N log N): ??????
O (N 2 ): квадратичный
O (N 3 ): кубический
algorithms
algorithm-analysis
big-o
matiascelasco
источник
источник
O(n · f(n))
гдеf(n) << n
. Но это также соответствует таким вещам, какO(n · log log n)
иO(n α(n))
гдеα(n)
обратная функция Аккермана.Ответы:
«N log N» так же хорош, как вы собираетесь получить, и должно быть хорошо понято профессиональными программистами. Вы не можете ожидать, что будет одно слово для описания каждого существующего класса сложности.
источник
Существует термин жаргон linearithmic означает именно это.
Я не верю, что это все понимают все программисты, поэтому, если вы не будете осторожны, тогда это будет скрывать больше, чем сообщать. Лично я обычно не использую его, и если бы я это сделал, я бы, вероятно, определил его при первом использовании, например, «в этой статье рассматриваются
O(N log N)
алгоритмы linearithmic ( )».источник
Иногда его называют «логлинейным», хотя это слово на самом деле означает нечто иное. Я бы просто придерживался "N log N", хотя, как подсказывает ответ @ Philip .
источник
Поскольку фактор
log n
растет медленно, качественное описаниеO(n log n)
будет «почти линейным». В зависимости от вашей аудитории классO(n log n)
алгоритмов может быть хорошо известен, как, например, это происходит в случае быстрой сортировкиn
элементов по сравнению.источник