Všechny následující příklady používají kód napsaný v jazyce Python. Všimněte si, že toto není úplný seznam typů Big O.
Konstantní
O ( 1 ) {\displaystyle O(1)}
. Vždy trvá stejně dlouho bez ohledu na vstup. Vezměme například funkci, která přijímá celé číslo (nazvané x) a vrací dvojnásobek jeho hodnoty:
def double(x): return x * 2 #Vrátí hodnotu x krát 2
Po přijetí vstupu provede tato funkce vždy jeden krok a vrátí výstup. Je konstantní, protože bude vždy trvat stejně dlouho, takže je O ( 1 ) {\displaystyle O(1)}
.
Lineární
O ( n ) {\displaystyle O(n)}
. Zvyšuje se podle velikosti vstupu, reprezentovaného n {\displaystyle n}
. Předpokládejme, že funkce přijímá n a vrací každé číslo od 1 do n:
def count(n): i = 1 #Vytvoříme čítač "i" s hodnotou 1 while i <= n: #Když je i menší nebo rovno n print(i) #Vytiskněte hodnotu i i = i + 1 #Předefinujte i jako "hodnotu i + 1"
Pokud bychom zadali hodnotu 5, pak by se na výstupu objevily hodnoty 1 , 2 , 3 , 4 , 5 {\displaystyle 1,2,3,4,5}.
, což vyžaduje dokončení 5 cyklů. Podobně pokud bychom zadali hodnotu 100, vypsalo by to 1 , 2 , 3...98 , 99 , 100 {\displaystyle 1,2,3...98,99,100}
, což vyžaduje dokončení 100 smyček. Pokud je na vstupu n {\displaystyle n},
pak je doba běhu algoritmu pokaždé přesně n {\displaystyle n}
cyklů, tedy je O ( n ) {\displaystyle O(n)}
.
Faktoriální
O ( n ! ) {\displaystyle O(n!)}
. Zvyšuje se ve faktorových hodnotách, což znamená, že čas potřebný k výpočtu se masivně zvyšuje se vstupem. Řekněme například, že chceme navštívit pět měst na světě a chceme vidět všechna možná pořadí (permutace). Algoritmus, který bychom mohli napsat pomocí knihovny itertools v jazyce Python, je následující:
import itertools #Import knihovny itertools cities = ['London', 'Paris', 'Berlin', 'Amsterdam', 'Rome'] #Pole našich vybraných měst def permutations(cities): #Přijmeme pole měst jako vstup: for i in itertools. permutations(cities): #Pro každou permutaci našich položek (přiřazenou proměnné "i") print(i) #Výstup i
Tento algoritmus vypočítá každou jedinečnou permutaci našich měst a poté ji vypíše. Příklady výstupů budou zahrnovat:
("Londýn", "Paříž", "Berlín", "Amsterdam", "Řím") ("Londýn", "Paříž", "Berlín", "Řím", "Amsterdam") ("Londýn", "Paříž", "Amsterdam", "Berlín", "Řím") ... ("Řím", "Amsterdam", "Paříž", "Berlín", "Londýn") ("Řím", "Amsterdam", "Berlín", "Londýn", "Paříž") ("Řím", "Amsterdam", "Berlín", "Paříž", "Londýn")
Zde je náš vstupní seznam dlouhý 5 položek a pro každý výběr se naše zbývající možnosti zmenší o 1. Jinými slovy, našich 5 vstupů vybírá 5 × 4 × 3 × 2 × 1 {\displaystyle 5\times 4\times 3\times 2\times 1}
položek (nebo 5 ! {\displaystyle 5!}
). Pokud je náš vstup dlouhý n {\displaystyle n}
měst, pak počet výstupů je n ! {\displaystyle n! }
; jinými slovy, za předpokladu, že projdeme každou permutaci, budeme k jejímu dokončení potřebovat O ( n ! ) {\displaystyle O(n!)}
cyklů.