Domanda di: Carlo Palmieri | Ultimo aggiornamento: 28 marzo 2023 Valutazione: 4.2/5
(49 voti)
La teoria della complessità computazionale è una branca della teoria della computabilità che studia le risorse minime necessarie per la risoluzione di un problema. Con complessità di un algoritmo o efficienza di un algoritmo ci si riferisce dunque alle risorse di calcolo richieste.
Un algoritmo ha complessità O(f(n)) se è Tworst(n) = O(f(n)). In tal caso f(n) è infatti una delimitazione superiore del tempo di calcolo per qualsiasi input: si ha la garanzia che al crescere di n il tempo di calcolo non cresce di più di f(n), qualunque sia l'input.
Il calcolo della complessità computazionale consiste dunque nell'individuare l'espressione della funzione T(n). essa relativi. È possibile che al variare della dimensione dei dati, il risultato del confronto possa essere diverso. massima di n che garantisce l'esecuzione dell'algoritmo entro il limite temporale.
Completezza. È la capacità dell'algoritmo di trovare una soluzione al problema per cui è stato sviluppato. Ottimalità. Questa caratteristica si verifica se la soluzione trovata dall'algoritmo è la migliore possibile.
La complessità spaziale è la quantità di risorse necessarie all'algoritmo per l'elaborazione. È solitamente misurata in termini di byte di memoria necessari per memorizzare le informazioni temporanee nel corso dell'esecuzione dell'algoritmo.