Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

La Notazione O-Grande ($O$)

Definizione formale dell'analisi asintotica, classificazione delle funzioni di crescita e stima delle prestazioni algoritmiche nel caso peggiore.

1. Definizione Formale della Notazione O-Grande

La notazione O-grande ($O$) è uno strumento matematico utilizzato nell'analisi degli algoritmi per descrivere il limite asintotico superiore di una funzione. Siano $f(n)$ e $g(n)$ due funzioni non negative definite sui numeri interi positivi. Si dice che $f(n) = O(g(n))$ se esistono due costanti positive $c > 0$ e $n_0 > 0$ tali che:

$$0 \le f(n) \le c \cdot g(n) \quad \text{per ogni } n \ge n_0$$

In parole semplici, la notazione indica che, al di là di una certa soglia iniziale $n_0$, la crescita del tempo (o dello spazio) richiesto dall'algoritmo è dominata da un multiplo costante di $g(n)$, ignorando i fattori moltiplicativi costanti e i termini di ordine inferiore.

2. Regole Pratiche di Semplificazione

Quando si analizza il codice sorgente di un algoritmo per determinarne la complessità in O-grande, si applicano alcune regole algebriche fondamentali:

Ordine di Crescita Nome Comune Valutazione di Efficienza
$O(1)$ Costante Ottimale (indipendente dalla mole di dati).
$O(\log n)$ Logaritmica Eccellente (es. dimezzamento continuo dei dati).
$O(n)$ Lineare Buona (tempo proporzionale agli elementi).
$O(n \log n)$ Linearitmica Standard efficiente per ordinamenti basati su confronti.
$O(n^2)$ Quadratica Accettabile solo per input ridotti ($n$ piccoli).
$O(2^n)$ Esponenziale Inattuabile per input di grandi dimensioni.

3. Simulatore Interattivo: Analizzatore di Crescita Asintotica

Seleziona un'espressione di costo algebrico per calcolare la sua forma semplificata in O-grande e stimare i valori numerici al crescere di $n$.

big-o-analyzer@nexus-core:~# Asymptotic Rate Calculator
> In attesa di parametri per l'analisi asintotica...