Esercizio 1confronto tra complessità quadratica e n log n
In questa pagina 5
Testo (scritto del 24/06/2026, parte 1, esercizio 1, 3 punti). Due algoritmi e risolvono lo stesso problema computazionale. La loro complessità al caso pessimo è e , dove è la dimensione dell'input. Rispondere, motivando brevemente.
(a) È vero che esiste tale che, per ogni , l'algoritmo esegue meno operazioni di ?
(b) Uno studente afferma: "Poiché , allora è sempre più veloce di ". È corretto?
(c) Un secondo studente afferma: "Se l'input diventa molto grande, la differenza tra i due algoritmi diventa trascurabile, poiché entrambi hanno tempo di esecuzione che tende a infinito". È corretto?
Richiami
significa che esistono costanti positive con per ; analogamente per con (vedi Notazione asintoticaDefinizioni di O, Omega, Theta e o piccolo con le costanti c ed n0; esempi con costanti esplicite; proprietà (polinomi, esponenziali, logaritmi, somme, implicazioni tra notazioni); sommatorie notevoli; terminologia (logaritmica, lineare, polinomiale, esponenziale).Notazione asintotica →). Le costanti non sono note: la notazione le nasconde.
(a) Sì
Si confronta il limite del rapporto:
Il limite è un caso della gerarchia degli infiniti: ogni potenza positiva di cresce più di qualunque potenza di (Limiti notevoli e gerarchia degli infinitiI limiti di base per sciogliere le forme indeterminate delle successioni: potenze, polinomi, il numero e, esponenziali, la gerarchia logaritmi < potenze < esponenziali < fattoriale < n^n e la razionalizzazione.Limiti notevoli e gerarchia degli infiniti →, Limiti di successioniUna successione ha limite l se, da un certo indice in poi, i suoi termini stanno vicini a l quanto si vuole; definizioni con epsilon, limiti infiniti e unicità.Limiti di successioni →); numericamente vale per , per , per . Per definizione di , per ogni costante esiste tale che per . Allora, fissate le costanti nascoste, e : scegliendo (una costante positiva: serve proprio che valga per ogni , anche per questa piccolissima) si ha, per abbastanza grande (cioè maggiore sia di sia delle soglie delle due definizioni ),
Quindi da un certo in poi esegue strettamente meno operazioni di : è asintoticamente più efficiente.
(b) No
è un confronto tra le funzioni che descrivono solo l'andamento. Le complessità vere sono di queste funzioni, cioè moltiplicate per costanti ignote. Controesempio: e rispettano le ipotesi, ma solo se , cioè per (calcolato con un piccolo programma; controllo: mentre , quindi è il primo intero per cui la disuguaglianza è vera). Dalla disuguaglianza (si divide per ). Per più piccoli, ad esempio , fa operazioni e circa : è più veloce. Conclusione: la superiorità di vale per sufficientemente grande, non sempre. L'analisi asintotica ignora le costanti e può essere fuorviante per input piccoli.
Grafico interattivo: Controesempio del punto (b), T_A = n² e T_B = 1000·n·log₂n, in milioni di operazioni: B sta sopra A (cioè è più lento) fino a n = 13747, dove le due curve si incontrano (189 milioni di operazioni), e solo oltre diventa più veloce; a n = 1000 sono 1 contro 10 milioni
(c) No
Il fatto che entrambi i tempi tendano a infinito non implica che la differenza sia trascurabile; conta il rapporto:
All'aumentare di il tempo di diventa infinitamente più grande di quello di (per esempio per il rapporto è ). Un algoritmo che impiegasse un secondo con ne impiegherebbe circa 14 ore con . Anche la differenza assoluta cresce senza limite. L'affermazione è falsa.
Errori comuni
- Rispondere "sì" al punto (b): dice solo come crescono le funzioni, non il tempo reale.
- Confondere "tendono entrambi a infinito" con "hanno lo stesso ordine di grandezza".
- Nel punto (a) dimenticare che l'affermazione è su abbastanza grande, non su tutti gli .
Versione ripasso
Testo. , . (a) esegue meno operazioni di per ogni ? (b) ", quindi è sempre più veloce"? (c) "la differenza diventa trascurabile perché entrambi tendono a infinito"?
Richiamo: vuol dire per , con costanti ignote (vedi Notazione asintoticaDefinizioni di O, Omega, Theta e o piccolo con le costanti c ed n0; esempi con costanti esplicite; proprietà (polinomi, esponenziali, logaritmi, somme, implicazioni tra notazioni); sommatorie notevoli; terminologia (logaritmica, lineare, polinomiale, esponenziale).Notazione asintotica →).
- (a) Sì. , cioè : per ogni esiste con per . Numericamente vale per e per . Con , e si ottiene per abbastanza grande.
- (b) No. Le costanti sono nascoste in . Controesempio: , . Qui solo per ; per è a essere più veloce.
- (c) No. : per il rapporto vale circa . La differenza cresce senza limite.
- Errori tipici: rispondere "sì" al punto (b); scambiare "tendono entrambi a infinito" per "stesso ordine di grandezza"; dimenticare che (a) vale solo da in poi.