uni
La complessità in algoritmi si divide in complessità spaziale e complessità temporale. Siccome la complessità spaziale ha poche soluzioni in ambito software  e più in ambito hardware, noi parleremo solo di complessità temporale.
Dato un algoritmo A la complessità viene determinata contando il numero di operazioni aritmetiche e logiche, accesso ai file, letture e scritture in memoria, etc.
Quindi è il tempo impiegato proporzionale al numero di operazioni eseguite (ciascuna a costo unitario).
Definizione del Corso:
La complessità di un algoritmo è una funzione (sempre positiva) che associa alla dimensione del problema il costo della sua risoluzione.
La complessità è diversa dal profiling (tecnica di analisi di un programma basato sulla misurazione di indici di prestazione a runtime) poiché questo dipende dall’ambiente di esecuzione.
Si indica normalmente come  con  numero di dati.
Definiamo  l’insieme delle funzioni di ordine .
 è quindi l’insieme delle funzioni della forma 
 è quindi l’insieme delle funzioni della forma 
Regole:
se  è  e  è  allora →  è 
per ogni costante ,  è 
per ,  è 
un polinomio di grado  è 
Quando valuto due algoritmi li valuto in maniera asintotica, quindi  per esempio.
Notazioni
In generale una funzione  si indica con solo 
Quindi  diventa .
sinonimi:
1.  è di ordine 
2.  è 
3. 
4.  = 
 è l’insieme delle funzioni di ordine 
Notazione O Grande: Limite Asintotico Superiore
 è di ordine  se esistono un intero  ed una costante  tali che . Quindi oltre una certa   è minore di 
Classi di Complessità:
 = costante;  = logaritmica;  = lineare;  ;  = quadratica ;  = cubica;  = polinomiale ;  e  = esponenziale.
Notazione theta grande: Limite Asintotico Stretto
 è  se  è  e   è 
Quindi  è  quando  e  hanno lo stesso ordine di complessità.
Notazione Omega Grande: Limite Asintotico Inferiore
è se esistono un intero ed una costante tali che
Regole
- Regola dei fattori costanti:
 per ogni costante positiva ,
- Regola della somme:
 se è allora è
- Regola del prodotto
 se è e è , allora è
- se è e è , allora è
- per ogni costante , è
- per , è
- un polinomio di grado è
Classi di complessità
Le classi di complessità sono le seguenti:
costante, logaritmica, lineare, , quadratica, cubica, polinomiale, esponenziale, esponenziale .