Salta al contenuto
Note per Studenti Esercizio 1 · confronto tra complessità quadratica e n log n

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 AA e BB risolvono lo stesso problema computazionale. La loro complessità al caso pessimo è TA(n)=Θ(n2)T_A(n) = \Theta(n^2) e TB(n)=Θ(nlog⁡n)T_B(n) = \Theta(n \log n), dove nn è la dimensione dell'input. Rispondere, motivando brevemente.

(a) È vero che esiste n0n_0 tale che, per ogni n≥n0n \ge n_0, l'algoritmo BB esegue meno operazioni di AA?

(b) Uno studente afferma: "Poiché nlog⁡n<n2n \log n < n^2, allora BB è sempre più veloce di AA". È 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

TA∈Θ(n2)T_A \in \Theta(n^2) significa che esistono costanti positive a1,a2,n1a_1, a_2, n_1 con a1n2≤TA(n)≤a2n2a_1 n^2 \le T_A(n) \le a_2 n^2 per n≥n1n \ge n_1; analogamente per TBT_B con b1nlog⁡n≤TB(n)≤b2nlog⁡nb_1 n \log n \le T_B(n) \le b_2 n \log n (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:

nlog⁡nn2=log⁡nn→n→∞0,quindi nlog⁡n∈o(n2).\frac{n \log n}{n^2} = \frac{\log n}{n} \xrightarrow[n \to \infty]{} 0, \qquad \text{quindi } n \log n \in o(n^2).

Per definizione di oo, per ogni costante c>0c > 0 esiste n0n_0 tale che nlog⁡n≤c n2n \log n \le c\,n^2 per n≥n0n \ge n_0. Allora, fissate le costanti nascoste, TB(n)≤b2 nlog⁡nT_B(n) \le b_2\, n \log n e TA(n)≥a1n2T_A(n) \ge a_1 n^2: scegliendo c=a1/(2b2)c = a_1 / (2 b_2) si ha, per nn abbastanza grande,

TB(n)≤b2 nlog⁡n≤b2⋅a12b2 n2=a12 n2<a1n2≤TA(n).T_B(n) \le b_2\, n \log n \le b_2 \cdot \frac{a_1}{2 b_2}\, n^2 = \frac{a_1}{2}\, n^2 < a_1 n^2 \le T_A(n).

Quindi da un certo n0n_0 in poi BB esegue strettamente meno operazioni di AA: BB è asintoticamente più efficiente.

(b) No

nlog⁡n<n2n \log n < n^2 è un confronto tra le funzioni che descrivono solo l'andamento. Le complessità vere sono Θ(⋅)\Theta(\cdot) di queste funzioni, cioè moltiplicate per costanti ignote. Controesempio: TA(n)=n2T_A(n) = n^2 e TB(n)=1000 nlog⁡2nT_B(n) = 1000\, n \log_2 n rispettano le ipotesi, ma TB(n)<TA(n)T_B(n) < T_A(n) solo se 1000log⁡2n<n1000 \log_2 n < n, cioè per n≥13747n \ge 13747 (calcolato con un piccolo programma). Per nn più piccoli, ad esempio n=1000n = 1000, AA fa 10610^6 operazioni e BB circa 10710^7: AA è più veloce. Conclusione: la superiorità di BB vale per nn sufficientemente grande, non sempre. L'analisi asintotica ignora le costanti e può essere fuorviante per input piccoli.

(c) No

Il fatto che entrambi i tempi tendano a infinito non implica che la differenza sia trascurabile; conta il rapporto:

n2nlog⁡n=nlog⁡n→n→∞∞.\frac{n^2}{n \log n} = \frac{n}{\log n} \xrightarrow[n \to \infty]{} \infty.

All'aumentare di nn il tempo di AA diventa infinitamente più grande di quello di BB (per esempio per n=106n = 10^6 il rapporto è circa 5⋅1045 \cdot 10^4). Anche la differenza assoluta n2−nlog⁡nn^2 - n \log n cresce senza limite. L'affermazione è falsa.

Errori comuni

  • Rispondere "sì" al punto (b): nlog⁡n<n2n \log n < n^2 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 nn abbastanza grande, non su tutti gli nn.

Versione ripasso

Testo. TA=Θ(n2)T_A = \Theta(n^2), TB=Θ(nlog⁡n)T_B = \Theta(n \log n). (a) BB fa meno operazioni di AA per n≥n0n \ge n_0? (b) "nlog⁡n<n2n \log n < n^2 quindi BB sempre più veloce"? (c) "la differenza diventa trascurabile perché entrambi →∞\to \infty"?

Teoria collegata