Based on the book "Computational Complexity" by C. H. Papadimitrio
Edit and compile if you like:
% Author: Sebastian Sardina \documentclass[a4paper,10pt]{article} \usepackage{tikz} \usepackage[active,tightpage]{preview} \PreviewEnvironment{tikzpicture} \setlength\PreviewBorder{5pt}% \begin{document} \begin{tikzpicture} \pgftransformscale{.8} %%% HELP LINES - uncomment to design/extend % \draw[step=1cm,gray,very thin] (-10,0) grid (10,12); % \node at (0,0) {\textbf{(0,0)}}; %% Horizontal bar \draw[very thick] (10,0) -- (-10,0); % LOG TIME \draw (-1,0) parabola bend (0,2) (1,0) ; \node at (0,1) { \begin{tabular}{c} LOG \\ Time \end{tabular} }; % LOG SPACE \draw (-2,0) parabola bend (0,3.5) (2,0); \node at (0,2.5) { \begin{tabular}{c} LOG \\ Space \end{tabular} }; % PTIME \draw (-3,0) parabola bend (0,4.5) (3,0); \node at (0,4) {PTIME}; % NP \draw[dotted] (-4,0) parabola bend (2,6) (4.5,0); \node[rotate=-45] at (3,3.5) {NPTIME}; % NP-complete \node[circle,dotted,draw] at (2,5) {NPC}; % Co-NP \draw[dashed] (4,0) parabola bend (-2,6) (-4.5,0); \node[rotate=45] at (-2.5,4) {co-NPTIME}; % PSPACE \draw (-6,0) parabola bend (0,7.2) (6,0); \node at (0,6.5) {PSPACE}; % EXPTIME \draw (-7,0) parabola bend (0,8.5) (7,0); \node at (0,8) {EXPTIME}; % EXPTIME \draw (-8,0) parabola bend (0,9.5) (8,0); \node at (0,9) {EXPSPACE}; % ELEMENTARY \draw (-9,0) parabola bend (0,11.5) (9,0); \node at (0,10.5) {$\vdots$}; \node[anchor=north] at (0,11.4) { \begin{tabular}{c} ELEMENTARY \\ $\vdots$ \\ 2EXPTIME \end{tabular} }; % RECURSIVE \draw[very thick] (-9.5,0) parabola bend (0,12.5) (9.5,0); \node at (0,12) {R}; \end{tikzpicture} \end{document}
Click to download: complexity-classes.tex • complexity-classes.pdf
Open in Overleaf: complexity-classes.tex