Complessità computazionale

Complessità computazionale

La complessità computazionale è lo studio di quanto tempo e quanta memoria un algoritmo richiede in base alla dimensione dell’input. Ci aiuta a confrontare algoritmi e scegliere quello più efficiente.

Complessità computazionale

Notazione Big-O

La notazione Big-O descrive il peggior caso di un algoritmo, ossia il tempo massimo che può impiegare in funzione dell’input. Alcune delle complessità più comuni sono:

Notazione Nome Esempio
O(1) Tempo costante Accesso a un elemento in un array
O(log n) Logaritmico Ricerca binaria
O(n) Lineare Scansione di un array
O(n log n) Quasi-lineare Merge Sort, Quick Sort nel caso medio
O(n²) Quadratico Bubble Sort, Selection Sort
O(2ⁿ) Esponenziale Problemi di backtracking (es. Torre di Hanoi)
O(n!) Fattoriale Permutazioni di una lista

Perché la Complessità è Importante?

  • Aiuta a scegliere l’algoritmo più veloce ed efficiente.
  • Evita problemi di prestazioni su dati di grandi dimensioni.
  • È fondamentale in campi come l’intelligenza artificiale e la cyber-security.