Подтвердить что ты не робот

Существует ли сокращенный термин для 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) сложностью с некоторой регулярностью (думаем обо всех алгоритмах, в которых преобладает сложность сортировки), но, насколько я знаю, нет единственного слова, которое мы можем использовать на английском языке для обозначения этой сложности. Является ли этот пробел в моих знаниях или реальным пробелом в нашем английском дискурсе по вычислительной сложности?

4b9b3361

Ответ 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). Вам просто нужно потратить дополнительное время, говоря все это (Примечание: одинаковое количество слогов как "экспоненциальное" )