problemi di informatica spesso coinvolgono più di una soluzione , e ogni soluzione si raggiunge seguendo una serie di regole , noto anche come un algoritmo. Big O notazione fornisce un metodo di descrizione dell'efficienza di un algoritmo - in altre parole , il tempo necessario per un algoritmo per eseguire come funzione della dimensione dell'input di tale algoritmo. Sfondo Foto
notazione O-grande - noto anche come simbolo di Landau , dopo il matematico ebreo tedesco , Edmund Landau - descrive il tasso di crescita di una funzione , anche noto come il suo "ordine ", da cui il lettera maiuscola O notazione Big "O" ha lo scopo di misurare le prestazioni di un algoritmo in sé , piuttosto che l'hardware su cui viene eseguito l'algoritmo . Un pezzo di hardware può essere più veloce o più lento rispetto ad un altro per un fattore costante , per cui tutti i fattori costanti vengono rimosse dalla notazione O-grande .
Costante Tempo di Esecuzione
Un algoritmo che prende sempre circa lo stesso tempo per eseguire , indipendentemente dalla dimensione dell'input , è detto avere "costante" tempo di esecuzione . In notazione O-grande , questo tipo di algoritmo è noto come algoritmo "ordine 1" ed è indicato con O ( 1 ) . Esempi di O (1 ) algoritmi includono spingere o popping dati da e verso una pila di programmazione , e il recupero di un singolo elemento di dati da un array quando si conosce la sua posizione . Questi algoritmi eseguono solo un certo numero di passi , non importa quanto sia grande l'ingresso diventa .
Lineare Tempo di Esecuzione
Un algoritmo la cui esecuzione tempo aumenta in modo proporzionale, o in modo lineare , con le dimensioni del suo ingresso si dice che abbia il tempo running "lineare" . In notazione O-grande , questo tipo di algoritmo è noto come un "ordine n" algoritmo ed è indicato con O ( n) , che indica che il tempo necessario per eseguire l'algoritmo aumenta linearmente come il numero di elementi di dati , "n , " aumenta . Un semplice esempio di un algoritmo O ( n) è un algoritmo che calcola il totale di una lista di numeri ; un'addizione è richiesto per ogni elemento della lista , in modo che il numero di aggiunte è lo stesso del numero di elementi < br . >
quadratica Tempo di Esecuzione
un algoritmo la cui esecuzione il tempo aumenta di un fattore n ^ 2 quando la dimensione degli aumenti di ingresso di un fattore "n" si dice avere tempo che passa " quadratica " . In notazione O-grande , questo tipo di algoritmo è noto come un ordine n ^ 2 algoritmo , o semplicemente un algoritmo quadratico , ed è indicato con O (n ^ 2 ) . Esempi di algoritmi O ( n ^ 2 ) includono algoritmi di ordinamento , come insertion sort e bubble sort , in cui il raddoppio della dimensione dell'input quadruplica il tempo di esecuzione .