Существует ли сокращенный термин для O (n log n)?
Обычно мы имеем одно слово для большинства сложностей, с которыми мы сталкиваемся в алгоритмическом анализе:
-
O(1)
== "constant"
-
O(log n)
== "logarithmic"
-
O(n)
== "linear"
-
O(n^2)
== "квадратичный"
-
O(n^3)
== "кубический"
-
O(2^n)
== "экспоненциальный"
Мы сталкиваемся с алгоритмами с O(n log n)
сложностью с некоторой регулярностью (думаем обо всех алгоритмах, в которых преобладает сложность сортировки), но, насколько я знаю, нет единственного слова, которое мы можем использовать на английском языке для обозначения этой сложности. Является ли этот пробел в моих знаниях или реальным пробелом в нашем английском дискурсе по вычислительной сложности?
Ответы
Ответ 1
Кажется, что он был придуман Робертом Седжуиком в книге Алгоритмы In C. Также называются квазилинейными или логарифмическими. Однако у линеаритической есть дополнительный бонус не быть перегруженным термином (квазилинейная используется в экономике и дифференциальных уравнениях, а логарифмическая используется в экономике и регрессионном анализе).
Ответ 2
"en log en" имеет меньше слогов, чем "экспоненциальный" или "логарифмический". Я думаю, что большинство людей просто так говорят.
Ответ 3
В соответствии с Wikipedia вы можете назвать его линейным, логарифмическим или квазилинейным.
Ответ 4
O(2^n)
== "O Scary"
Ответ 5
Я не верю, что существует такой термин.
Более уместна эта мысль: почему вы ссылаетесь на экспоненциальный (11 символов) как "стенографию" для O (2 ^ n) (6 символов)?
Лично я рад сказать, что "этот алгоритм работает в en log en time". Это все, что нужно большинству людей.
Ответ 6
Нет ни одного эквивалентного слова для O (nlogn). Вам просто нужно потратить дополнительное время, говоря все это (Примечание: одинаковое количество слогов как "экспоненциальное" )