AlgoMooc 05.02. La grande O

Post on 29-Jan-2018

56 views 0 download

transcript

http://codemooc.org/algoritmi/

Algo 05.02

La grande ยซOยป

alessandro bogliolo

Algo 05.02

alessandro.bogliolo@uniurb.itIn 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

Algo 05.02

alessandro.bogliolo@uniurb.itIn p

rati

ca

๐‘“ ๐‘› = 5 ๐‘“ ๐‘› = 2 + ๐‘˜ โˆ— 1 + 1

Algo 05.02

alessandro.bogliolo@uniurb.itIn p

rati

ca

๐‘“ ๐‘› = 2 + ๐‘› โˆ— 1 + 1 ๐‘“ ๐‘› = 2 + ๐‘”(๐‘›) โˆ— 1 + 1

๐‘“ ๐‘› = 2 + ๐‘› โˆ— ๐‘˜ + 1 ๐‘“ ๐‘› = 2 + ๐‘”(๐‘›) โˆ— ๐‘˜ + 1

Algo 05.02

alessandro.bogliolo@uniurb.itCo

mp

osi

zio

ne

๐‘“ ๐‘› = 2 + ๐‘› โˆ— 1 + ๐‘› โˆ— 1

๐‘“ ๐‘› = 2 + ๐‘› โˆ— ๐‘˜ + ๐‘› โˆ— โ„Ž

Algo 05.02

alessandro.bogliolo@uniurb.itCo

mp

osi

zio

ne

๐‘“ ๐‘› = 2 + ๐‘› โˆ— (๐‘› โˆ— 1)

๐‘“ ๐‘› = 2 + ๐‘› โˆ— (๐‘˜ + ๐‘› โˆ— โ„Ž )

Algo 05.02

alessandro.bogliolo@uniurb.itCo

mp

osi

zio

ne

๐‘“ ๐‘› = 2 + ๐‘› โˆ— ๐‘› โˆ— (2 + ๐‘› โˆ— 1 + 1)

Algo 05.02

alessandro.bogliolo@uniurb.itCo

sโ€™รจ

n?

quantitร 

valore

dimensione

Algo 05.02

alessandro.bogliolo@uniurb.itPer

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

Algo 05.02

alessandro.bogliolo@uniurb.itPer

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

Algo 05.02

alessandro.bogliolo@uniurb.itPer

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

Algo 05.02

alessandro.bogliolo@uniurb.itPer

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

Algo 05.02

alessandro.bogliolo@uniurb.itO g

ran

de

๐‘“ ๐‘›

๐‘” ๐‘›๐‘“ ๐‘› = ๐‘‚(๐‘” ๐‘› )

Algo 05.02

alessandro.bogliolo@uniurb.itO g

ran

de

๐‘“ ๐‘›

๐‘” ๐‘›

โ„Ž ๐‘›

๐‘“ ๐‘› = ๐‘‚(๐‘” ๐‘› )

๐‘“ ๐‘› = ฮฉ(โ„Ž ๐‘› )

Algo 05.02

alessandro.bogliolo@uniurb.itO g

ran

de

๐‘“ ๐‘› = 2 + ๐‘› โˆ— ๐‘› โˆ— (2 + ๐‘› โˆ— 1 + 1)

๐‘“ ๐‘› = 2 + ๐‘› โˆ— ๐‘› โˆ— 2 + ๐‘› โˆ— 1 + 1 = 2 + 3 โˆ— ๐‘›2 + ๐‘›3 ๐œ– ๐‘‚(๐‘›3)

Algo 05.02

alessandro.bogliolo@uniurb.itOp

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

Algo 05.02

alessandro.bogliolo@uniurb.itQu

anto

so

no

gra

nd

i q

ues

te O

Algo 05.02

alessandro.bogliolo@uniurb.itCas

oo

ttim

o, m

edio

, pes

sim

o