Complessità in tempo asintotica


Dopo aver analizzato la complessità in tempo di alcuni algoritmi fondamentali possiamo osservare che
  1. il caso ottimo di un algoritmo è quasi sempre costante (e comunque non sarebbe significativo…)
  2. il caso pessimo (medio) dipende dalla dimensione dei dati
  3. è difficile calcolare con precisione le costanti moltiplicative
  4. per n piccolo è difficile decidere tra due algoritmi mentre per n abbastanza grande…

Si preferisce allora dare una misura della complessità in tempo di un algoritmo dando

Definizione

Si introduce la complessità asintotica e la notazione O(f(n))
una funzione g(n) è O(f(n)), si legge g(n) è dell'ordine o grande di f(n),
se esistono una costante moltiplicativa c ed un numero naturale n0 tali che
g(n) ≤ c*f(n), per una certa c e per ogni n≥n0

Esempio
Data la funzione
g(n)=2n2+4n+2
con i valori
c=2.1 e n≥41
si ha
g(41) = 3528
2.1(41)2 = 3530.1
allora
g(n)=2n2+4n+2 ε O(n2)

In pratica e la complessità in tempo viene riassunta in una funzione più significativa, complessità in tempo asintotica.

Esempi
Le costanti sono spropositate per evidenziare l'aspetto asintotico... della complessità
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki