Обозначение большого O


Нотация Big O — это математическая нотация, описывающая предельное поведение функции, когда аргумент стремится к определенному значению или бесконечности. Большой O является членом семейства обозначений , изобретенных Полом Бахманом , [1] Эдмундом Ландау , [2] и другими, которые в совокупности называются обозначениями Бахмана-Ландау или асимптотическими обозначениями .

В информатике большая нотация O используется для классификации алгоритмов в зависимости от того, как растут их требования к времени выполнения или пространству по мере увеличения размера входных данных. [3] В аналитической теории чисел нотация большого O часто используется для выражения границы разницы между арифметической функцией и более понятной аппроксимацией; известный пример такой разницы — остаточный член в теореме о простых числах . Обозначение Big O также используется во многих других областях для получения аналогичных оценок.

Нотация Big O характеризует функции в соответствии с темпами их роста: разные функции с одинаковой скоростью роста могут быть представлены с использованием одной и той же нотации O. Буква O используется потому, что скорость роста функции также называется порядком функции . Описание функции в терминах нотации большого O обычно дает только верхнюю границу скорости роста функции.

С обозначением большого O связано несколько родственных обозначений, использующих символы o , Ω, ω и Θ для описания других видов границ асимптотических скоростей роста.

Пусть fдействительная или комплекснозначная функция, а g — вещественнозначная функция. Пусть обе функции определены на некотором неограниченном подмножестве положительных действительных чисел и строго положительны для всех достаточно больших значений x . [4] Один пишет

если абсолютное значение не больше положительного постоянного кратного для всех достаточно больших значений x . То есть, если существуют положительное действительное число M и действительное число x 0 такие, что


Пример нотации Big O: существуют (например, ) и (например, ) такие, что всякий раз , когда .
Графики функций, обычно используемые при анализе алгоритмов, показывающие количество операций N в зависимости от размера входных данных n для каждой функции .