AlgoMooc 05.02. La grande O

18
http://codemooc.org/algoritmi/ Algo 05.02 La grande «O» alessandro bogliolo

Transcript of AlgoMooc 05.02. La grande O

Page 1: AlgoMooc 05.02. La grande O

http://codemooc.org/algoritmi/

Algo 05.02

La grande «O»

alessandro bogliolo

Page 2: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected] t

eori

aDi cosa abbiamo bisogno per valutare la complessità di un algoritmo?

Dimensione dei dati su cui opera

Numero di passi elementari espressi in funzione di n Funzione monotona crescente

Page 3: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected] p

rati

ca

𝑓 𝑛 = 5 𝑓 𝑛 = 2 + 𝑘 ∗ 1 + 1

Page 4: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected] p

rati

ca

𝑓 𝑛 = 2 + 𝑛 ∗ 1 + 1 𝑓 𝑛 = 2 + 𝑔(𝑛) ∗ 1 + 1

𝑓 𝑛 = 2 + 𝑛 ∗ 𝑘 + 1 𝑓 𝑛 = 2 + 𝑔(𝑛) ∗ 𝑘 + 1

Page 5: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

mp

osi

zio

ne

𝑓 𝑛 = 2 + 𝑛 ∗ 1 + 𝑛 ∗ 1

𝑓 𝑛 = 2 + 𝑛 ∗ 𝑘 + 𝑛 ∗ ℎ

Page 6: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

mp

osi

zio

ne

𝑓 𝑛 = 2 + 𝑛 ∗ (𝑛 ∗ 1)

𝑓 𝑛 = 2 + 𝑛 ∗ (𝑘 + 𝑛 ∗ ℎ )

Page 7: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

mp

osi

zio

ne

𝑓 𝑛 = 2 + 𝑛 ∗ 𝑛 ∗ (2 + 𝑛 ∗ 1 + 1)

Page 8: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

s’è

n?

quantità

valore

dimensione

Page 9: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

esem

pio

Passo elementare: incremento

• Contiamo fino a n• Contiamo quanti quadretti 1x1 ci sono in un quadrato di lato n• Contiamo quanti cubetti 1x1x1 ci sono in un cubo di lato n

• Calcoliamo n*n• Calcoliamo n*n*n• Calcoliamo 2n

Page 10: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

esem

pio

Passo elementare: addizione ad una sola cifra

• Contiamo fino a n• Contiamo quanti quadretti 1x1 ci sono in un quadrato di lato n• Contiamo quanti cubetti 1x1x1 ci sono in un cubo di lato n

• Calcoliamo n*n• Calcoliamo n*n*n• Calcoliamo 2n

Page 11: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

esem

pio

Passo elementare: addizione

• Contiamo fino a n• Contiamo quanti quadretti 1x1 ci sono in un quadrato di lato n• Contiamo quanti cubetti 1x1x1 ci sono in un cubo di lato n

• Calcoliamo n*n• Calcoliamo n*n*n• Calcoliamo 2n

Page 12: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

esem

pio

Passo elementare: addizione e moltiplicazione

• Contiamo fino a n• Contiamo quanti quadretti 1x1 ci sono in un quadrato di lato n• Contiamo quanti cubetti 1x1x1 ci sono in un cubo di lato n

• Calcoliamo n*n• Calcoliamo n*n*n• Calcoliamo 2n

Page 13: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected] g

ran

de

𝑓 𝑛

𝑔 𝑛𝑓 𝑛 = 𝑂(𝑔 𝑛 )

Page 14: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected] g

ran

de

𝑓 𝑛

𝑔 𝑛

ℎ 𝑛

𝑓 𝑛 = 𝑂(𝑔 𝑛 )

𝑓 𝑛 = Ω(ℎ 𝑛 )

Page 15: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected] g

ran

de

𝑓 𝑛 = 2 + 𝑛 ∗ 𝑛 ∗ (2 + 𝑛 ∗ 1 + 1)

𝑓 𝑛 = 2 + 𝑛 ∗ 𝑛 ∗ 2 + 𝑛 ∗ 1 + 1 = 2 + 3 ∗ 𝑛2 + 𝑛3 𝜖 𝑂(𝑛3)

Page 16: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

eraz

ion

i ele

men

tari Incremento

Addizione a una cifra

Addizione a un numero limitato di cifre

Moltiplicazione a un numero limitato di cifre

Page 17: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

anto

so

no

gra

nd

i q

ues

te O

Page 18: AlgoMooc 05.02. La grande O

Algo 05.02

[email protected]

oo

ttim

o, m

edio

, pes

sim

o