I seguenti esempi utilizzano tutti codice scritto in Python. Si noti che questa non è una lista completa dei tipi Big O.
Costante
O ( 1 ) O(1)}
. Richiede sempre la stessa quantità di tempo indipendentemente dall'input. Per esempio, prendere una funzione che accetta un numero intero (chiamato x) e restituisce il doppio del suo valore:
def doppio(x): ritorno x * 2 # Restituire il valore di x volte 2
Dopo aver accettato l'ingresso, questa funzione esegue sempre un passo per restituire un'uscita. E' costante perché ci vorrà sempre lo stesso tempo, quindi è O ( 1 ) {\i}
.
Lineare
O ( n ) O(n)}
. Aumenta in base alla dimensione dell'input, rappresentato da n {\a6}
. Supponiamo che una funzione accetti n, e restituisca ogni numero da 1 a n:
def count(n): i = 1 #Crea un contatore chiamato "i" con un valore di 1 mentre i <= n: #Mentre i è minore o uguale a n print(i) #Stampa il valore di i i i = i + 1 #Ridefinisci i come "il valore di i + 1".
Se dovessimo inserire il valore di 5 allora questo emetterebbe 1 , 2 , 3 , 3 , 4 , 4 , 5 {\i}
che richiede 5 cicli da completare. Allo stesso modo, se ne immettiamo 100 uscirebbe 1 , 2 , 3...98 , 99 , 100 {\i}
, che richiede 100 loop per essere completato. Se l'ingresso è n {\i}
allora il tempo di esecuzione dell'algoritmo è esattamente n {\i}displaystyle n}
loop ogni volta, quindi è O ( n ) {\i}displaystyle O(n)}
.
Fattoriale
O ( n ! ) O ( n ! ) O(n!)
. Aumenta in quantità fattoriale, il che significa che il tempo impiegato aumenta enormemente con l'input. Per esempio, diciamo di voler visitare cinque città in tutto il mondo e di voler vedere ogni possibile ordine (permutazione). Un algoritmo che potremmo scrivere usando la libreria itertools di Python è il seguente:
importare itertools #Importare le città della biblioteca itertools = ['Londra', 'Parigi', 'Berlino', 'Amsterdam', 'Roma'] #Una serie delle nostre città scelte def permutazioni: #Importare un array di città come input: per i in itertools. permutazioni: #Per ogni permutazione dei nostri elementi (assegnati alla variabile "i") print(i) #Output i
Questo algoritmo calcolerà ogni permutazione unica delle nostre città e poi la produrrà. Esempi di output includeranno:
("Londra", "Parigi", "Berlino", "Amsterdam", "Roma") ("Londra", "Parigi", "Berlino", "Roma", "Amsterdam") ("Londra", "Parigi", "Amsterdam", "Berlino", "Roma") ... ("Roma", "Amsterdam", "Parigi", "Berlino", "Londra") ("Roma", "Amsterdam", "Berlino", "Londra", "Parigi") ("Roma", "Amsterdam", "Berlino", "Parigi", "Londra")
Qui la nostra lista di input è lunga 5 voci, e per ogni selezione le nostre opzioni rimanenti diminuiscono di 1. In altre parole i nostri 5 input scelgono 5 × 4 × 3 × 2 × 1 {\i}displaystyle 5 \times 4 \times 3\times 2\times 1}
items (o 5 ! {\i}displaystyle 5!}
). Se il nostro ingresso è n {\displaystyle n}
città lungo, allora il numero di uscite è n ! In
altre parole, supponendo di passare attraverso ogni permutazione che richiediamo i
loop O ( n ! ) O(n!) per completarla.