The big O, big theta, and other notations form the family of Bachmann-Landau or asymptotic notations. These notations describe the limiting behavior of a function in mathematics or classify algorithms in computer science according to their complexity / processing time. In this post, I’m not so much interested in the definition of these notations, but rather in how to correctly typeset them in LaTeX.
Example of a big O notation
There are two possible ways to type the big O:
1 2 3 | $O(n \log {}n)$ % regular O $ \mathcal {O}(n \log {}n)$ % Open at top left |
The latter produces the following:
No additional package is required for either of these.
Complete list of Bachmann-Landau notations
The complete list of Bachmann-Landau or asymptotic notations is given below. To copy-paste any of these, use the source code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | \documentclass [11pt]{article} \newcommand { \bslash }{ \char ` \ \ } \begin {document} \section *{Big O notations} $ \mathcal {O}(n \log {}n)$ \section *{Family of Bachmann-Landau notations} \setlength { \tabcolsep }{12pt} \renewcommand *{ \arraystretch }{1.2} \begin {tabular}{lcl} \hline Name&Notation&Command \ \ \hline { \bf Big O(micron)}&$ \mathcal {O}$ or $O$& \texttt { \ $ \bslash mathcal \ {O \ } \ $ or \ $O \ $} \ \ { \bf Big Omega}&$ \Omega $& \texttt { \ $ \bslash Omega \ $} \ \ { \bf Big Theta}&$ \Theta $& \texttt { \ $ \bslash Theta \ $} \ \ { \bf Small O(micron)}&$o$& \texttt { \ $o \ $} \ \ { \bf Small Omega}&$ \omega $& \texttt { \ $ \bslash omega \ $} \ \ { \bf On the order of}&$ \sim $& \texttt { \ $ \bslash sim \ $} \ \ \hline \end {tabular} \end {document} |
Very nice!
Thank you for that small tip. Just thought about investing an hour how to write this down properly.
This may be usefull:
\renewcommand
{
\O
}[1]{$
\mathcal
{O}(#1)$}
Thanks, interesting suggestion! Here is a minimal working example for illustration:
\documentclass
[11pt]{article}
\renewcommand
{
\O
}[1]{$
\mathcal
{O}(#1)$}
\begin
{document}
\O
{n}
\end
{document}
It is very nice, but I would define a new command so that the original meaning of `
\O
` (which gives us Ø) is not lost. So I would do like this\newcommand
\bigO
[1]{$
\mathcal
{O}(#1)$}
A good point, thanks much. Best, Tom
thank you