MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un...

141
MATEMATICA E INFORMATICA alessandro bogliolo http://codemooc.org/algomooc/ Urbino 2 febbraio 2018 La complessità nascosta degli algoritmi che ci semplificano la vita 1506 . UNIVERSITA DEGU STUDI DI URBINO CARLO BO

Transcript of MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un...

Page 1: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

alessandro bogliolo

http://codemooc.org/algomooc/

Urbino 2 febbraio 2018

La complessità nascosta degli algoritmi che ci semplificano la vita

1506 . UNIVERSITA DEGU STUDI DI URBINO CARLO BO

Page 2: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Uno più uno

Page 3: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

eggi

o e

incr

emen

to3+

2 https://blockly-demo.appspot.com/static/demos/code/index.html

2 3

51 2 3 4

5 6 7

calcola 3 p i ù 2 : annulla i l risultato ripeti 3 volte

incrementa risulta t o ripeti 2 volte

incrementa ris u lta t o mostra risultato

ca lcola3piu2

Next i • 1 to 3

Done risulato = risuftato+1

Next i • 1 to2

Done risulato = risuftato+1

Output risultato

( End )

Page 4: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

eggi

o e

incr

emen

toA+

B

1 2

3 4

5 6 7

somma A e B : annulla risultato ripeti A volte

incrementa risultato ripeti B volte

incrementa r isul t ato restituisci il risultato

somma (lnteger A, lnteger 6)

risultato• risulato+1

( Return lnteger risultato )

Output somma(3,2)

Page 5: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

mo

l’ass

egna

men

toA+

B

1 somma A e B : 2 assegna A a r is u l t a t o 3 ripeti B volte 4 5

incrementa risultato restituisci il risul t ato

somma ( lnteger A , lnteger 6 )

y t,1ext

i = 1 toB

Done r isuttato • r isultato+1

Return lnteger r isultato

Output somma(3,2)

Page 6: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

mo

il co

nfro

nto

A+B

1 somma A e B : 2 se A< B allora 3 assegna Ba risul t a t o 4 assegna A a inc 5 altrimenti 6 assegna A a risul t a t o 7 assegna Ba inc 8 ripeti inc volte 9 incrementa risul t a t o

10 restituisci risul t a t o

Page 7: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

mo

cart

a e

penn

a 3 4 7 6 +5 8 3 1 =

7

+

passi

7

+

0

110

+

5+

3

1

13

+

4

+

99

48

1

3

1

5

1

4

15

1

1

1

1

1

1

6

Il Il

Il Il Il Il

Page 8: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Complessità

Page 9: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected] te

oria

Cosa ci serve 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 10: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected] p

ratic

a

! " = 5 ! " = %&( ) ( )

Page 11: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected] p

ratic

a

! " = 2 + " ∗ 2 + 1 = " ∗ 2 + 3 ! " = )* + )+"( ) ( )

Page 12: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected] p

ratic

a

! " = 2 + &(") ∗ 2 + 1 = &(") ∗ 2 + 3 ! " = ,- + ,.&(")( ) ( )

Page 13: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

posiz

ione

! " = 2 + " ∗ 1 + " ∗ 2 = 2 + 3 ∗ "

! " = )* + )+," + )+-"

( )

( )

Page 14: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

posiz

ione

! " = 2 + " ∗ (" ∗ 1) ! " = *+ + " ∗ *, + " ∗ *- = *+ + *," + *-"-( ) ( ) ( ( ))

Page 15: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

posiz

ione

! " = 2 + " ∗ " ∗ (2 + " ∗ 1 + 1)

! " = *+ + *," + *-"- + *.".

( )

( )

Page 16: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

è n?

quantità

valore

dimensione

Page 17: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected] e

sem

pio

Operazione elementare: incremento unitarion = secondo addendo

1 somma A e B :

2 assegna A a ris u ltat o 3 ripeti B volte 4 incrementa risulta t o 5 restituisci il risultat o

Page 18: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected] g

rand

e

! "

# "

! " ∈ %(# " ) ( ) # "

"*

( ) ( )

=le > O, no E N: 'rin > no, lf(n) I < clg(n) I

( )

( )

( )

Page 19: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected] g

rand

e! " = 2 + " ∗ " ∗ (2 + " ∗ 1 + 1)

! " = 2 + " ∗ " ∗ 2 + " ∗ 1 + 1 = 2 + 3 ∗ "+ + ",./(",)

( )

( ) ( )

Page 20: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

razi

oni e

lem

enta

ri o

no?

Incremento

Addizione a una cifra

Addizione a un numero limitato di cifre

Moltiplicazione a un numero limitato di cifre

Page 21: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

ESPERIMENTON. 1Calcolatrice

Page 22: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Quando ti tocco la testaAppoggia la mano sinistra sulla spalla destra della persona davanti a te

Quando ti toccano la spalla destraAppoggia la mano destra sulla spalla destra della persona davanti a te

Quando ti tocco la testaAppoggia la mano sinistra sulla spalla sinistra della persona davanti a te

Quando hai un numero dispari di mani che ti toccanoAlza la mano sinistra

Quando hai più di una mano che ti tocca Con la mano destra tocca il braccio del vicino alla tua destra

Page 23: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

8 4 2 1

Page 24: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

nto

sono

gra

ndi

ques

te O

Page 25: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]’ a

nche

que

stio

ne d

i fo

rtun

a?

Caso ottimo

Caso medio

Caso pessimo

Page 26: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Due per due

Page 27: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

e 3x

2ne

l mod

o m

eno

prat

ico 2

3

6

6 passi

2x3

3x2

Page 28: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]*B

incr

emen

ti rip

etut

i 1 moltiplica A e B : 2 annulla ri s u lta t o 3 ripeti B volte 4 ripeti A volte 5 incrementa risultato 6 restituisci risultato

Page 29: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]*B

addi

zion

i rip

etut

e

1 moltiplica A e B : 2 annulla risultato 3 ripeti B volte 4 incrementa risultato di A 5 restituisci risultato

Page 30: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

3 2 1 x2 3 =

x

Usia

mo

cart

a e

penn

a

3

passi

3

6

6

9

92

4

+

26

61

46383

1

7

xxxxx

+++ 3

8

13

7

1

2

3

1

2

2

18

1

2

4

1

1

1

1

1

1

1

10

1

1

1

1

lii lii lii lii

Page 31: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

non

esag

eria

mo 3

321x23

21 2

33

831

6

7

3 2 1 x2 3 =

9 6 3 +6 4 2 _ =7 3 8 3

1

Page 32: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

1 2 3 4 5 6 7 8 9 101 1 2 3 4 5 6 7 8 9 102 2 4 6 8 10 12 14 16 18 203 3 6 9 12 15 18 21 24 27 304 4 8 12 16 20 24 28 32 36 405 5 10 15 20 25 30 35 40 45 506 6 12 18 24 30 36 42 48 54 607 7 14 21 28 35 42 49 56 63 708 8 16 24 32 40 48 56 64 72 809 9 18 27 36 45 54 63 72 81 9010 10 20 30 40 50 60 70 80 90 100

L’im

port

anza

de

lle ta

belli

ne

Page 33: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]’im

port

anza

de

lle ta

belli

ne

1 2 3 4 5 6 7 8 9 101 1 2 3 4 5 6 7 8 9 102 2 4 6 8 10 12 14 16 18 203 3 6 9 12 15 18 21 24 27 304 4 8 12 16 20 24 28 32 36 405 5 10 15 20 25 30 35 40 45 506 6 12 18 24 30 36 42 48 54 607 7 14 21 28 35 42 49 56 63 708 8 16 24 32 40 48 56 64 72 809 9 18 27 36 45 54 63 72 81 9010 10 20 30 40 50 60 70 80 90 100I

Page 34: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

0 1 2 3 4 5 6 7 8 9 100 0 0 0 0 0 0 0 0 0 0 01 0 1 2 3 4 5 6 7 8 9 102 0 2 4 6 8 10 12 14 16 18 203 0 3 6 9 12 15 18 21 24 27 304 0 4 8 12 16 20 24 28 32 36 405 0 5 10 15 20 25 30 35 40 45 506 0 6 12 18 24 30 36 42 48 54 607 0 7 14 21 28 35 42 49 56 63 708 0 8 16 24 32 40 48 56 64 72 809 0 9 18 27 36 45 54 63 72 81 9010 0 10 20 30 40 50 60 70 80 90 100

L’im

port

anza

de

lle ta

belli

ne-

I

I

Page 35: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

0 1 2 3 4 5 6 7 8 90 0 0 0 0 0 0 0 0 0 01 0 1 2 3 4 5 6 7 8 92 0 2 4 6 8 10 12 14 16 183 0 3 6 9 12 15 18 21 24 274 0 4 8 12 16 20 24 28 32 365 0 5 10 15 20 25 30 35 40 456 0 6 12 18 24 30 36 42 48 547 0 7 14 21 28 35 42 49 56 638 0 8 16 24 32 40 48 56 64 729 0 9 18 27 36 45 54 63 72 81

L’im

port

anza

de

lle ta

belli

ne

Page 36: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

0 1 2 3 4 5 6 7 8 90 0 0 0 0 0 0 0 0 0 01 0 1 2 3 4 5 6 7 8 92 0 2 4 6 8 10 12 14 16 183 0 3 6 9 12 15 18 21 24 274 0 4 8 12 16 20 24 28 32 365 0 5 10 15 20 25 30 35 40 456 0 6 12 18 24 30 36 42 48 547 0 7 14 21 28 35 42 49 56 638 0 8 16 24 32 40 48 56 64 729 0 9 18 27 36 45 54 63 72 81

L’im

port

anza

de

lle ta

belli

nepassi

3

6

9

2

4

6

61

3

8

13

7

1

2

3

1

2

2

18

1

2

4

1

1

1

1

1

1

1

10

1

1

1

1

moltip

licazione

addizio

ne

Page 37: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Chi cerca trova

Page 38: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

i in

fila

0 1 2 3 4 5 6

alunno[i]

altezza[i]

taglia[i]

peso[i]

175 165 110 180 150 100 170

Page 39: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

175 165 110 180 150 100 170

0 1 2 3 4 5 6

Conc

entr

iam

oci

sui d

ati

indice

altezza

Page 40: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

175 165 110 180 150 100 170

0 1 2 3 4 5 6

180

Cerc

hiam

o un

ele

men

to

dell’a

rray

indice

altezza

h

-1posizione

0i

n = numero di elementi

Complessità: O(n)

1 2 3 4 5 6 7

trova h in altezza : N = l u ng hezza di a l te zz a ; po si z i one = -1 ; per i da O a N- 1

se altezza [i] == h allora . . . po sizi one= i

restituisci p o sizi on e

Page 41: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

175 165 110 180 150 180 170

0 1 2 3 4 5 6

180

Cerc

hiam

o un

ele

men

to

dell’a

rray

indice

altezza

h

-1posizione

0i

Quale posizione restituisce la funzione?

1 2 3 4 5 6 7

trova h in altezza : N = l u ng hezza di a l te zz a ; po si z i one = -1 ; per i da O a N- 1

se altezza [i] == h allora . . . po sizi one= i

restituisci p o sizi on e

Page 42: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

175 165 110 180 150 100 170

0 1 2 3 4 5 6

180

Mod

ifich

iam

o l’a

lgor

itmo

indice

altezza

h

-1

0

posizione

i

n = numero di elementi

Complessità: O(n)

Caso ottimo: O(1)Caso medio: O(n/2) = O(n)Caso pessimo: O(n)

1 2 3 4 5 6 7 8 9

trova h in altezza : N = l u nghezza di altezza ; p o sizi o ne = - 1 ; i= O; finché i <N e p o sizi o ne== - 1

se altezza[i] == h allora . . . p o siz i one= i ;

i= i+l ; restituisci o sizi o ne

Page 43: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

175 165 110 180 150 180 170

0 1 2 3 4 5 6

180

equi

vale

nte

al p

rece

ndet

e?

indice

altezza

h

-1

0

posizione

i

Quale posizione restituisce la funzione?

1 2 3 4 5 6 7 8 9

trova h in altezza : N = l u nghezza di altezza ; p o sizi o ne = - 1 ; i= O; finché i <N e p o sizi o ne== - 1

se altezza[i] == h allora . . . p o siz i one= i ;

i= i+l ; restituisci o sizi o ne

Page 44: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

175 165 110 180 150 100 170

0 1 2 3 4 5 6

E se

cer

cass

imo

il m

ax? indice

altezza

-1

0

posizione

i1 trova massimo di altezz a : 2 N = l unghezz a di al tezz a ; 3 po si z i on e = O; 4 per i da O a N- 1 5 6 7

se altezza[ i] > a l tezza [pos i z i one] . . . pos i zione= i

restituisci po si z i one

Page 45: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

100 110 150 165 170 175 180

0 1 2 3 4 5 6

165

E se

l’ar

ray

foss

e in

ord

ine?

indice

altezza

h

n = numero di elementi

Complessità: O(n)

Caso ottimo: O(1)Caso medio: O(n/2) = O(n)Caso pessimo: O(n)

1 trova h in altezza : 2 N = lunghezza di altezza ; 3 posizione= - 1 ; 4 i= O; 5 finché i <N e altezza[i]<=h 6 se altezza[i] == h allora 7 posizione= i ; 8 i= i+l ; 9 restituisci os izi one

Page 46: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

100 110 150 165 165 175 180

0 1 2 3 4 5 6

165

E se

l’ar

ray

foss

e in

ord

ine?

indice

altezza

h

Quale posizione restituisce la funzione?

1 trova h in altezza : 2 N = lunghezza di altezza ; 3 posizione= - 1 ; 4 i= O; 5 finché i <N e altezza[i]<=h 6 se altezza[i] == h allora 7 posizione= i ; 8 i= i+l ; 9 restituisci os izi one

Page 47: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

100 110 150 165 170 175 180

0 1 2 3 4 5 6

175

La ri

cerc

a di

coto

mic

a

indice

altezza

h

6

0

3

inizio

fine

mezzo

+1

1 trova h in altezza : 2 N = lunghezza di altezza; 3 i nizio = O; 4 f i ne= N-1 ; 5 finché inizi o< fine 6 mezzo= int ((inizio+ fine) /2) ; 7 se altezza[mezzo] >= h allora 8 fine = mezzo ; 9 altrimenti

10 inizi o = mezzo+l ; 11 se altezza[mezz o] = h allora 12 13 14 15

posizione - mezzo ; altrimenti

posizione - - 1 ; restituisci posizione

D D

Page 48: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

100 110 150 165 170 175 180

0 1 2 3 4 5 6

175

La ri

cerc

a di

coto

mic

a

indice

altezza

h

6

4

5

inizio

fine

mezzo

1 trova h in altezza : 2 N = lunghezza di altezza ; 3 i nizio= O; 4 fine= N-1 ; 5 finché inizi o< f i ne 6 mezzo= int((inizi o+ fine)/2) ; 7 se altezza[mezzo] >= h allora 8 fine = mezzo ; 9 altrimenti

10 inizi o = mezzo+l ; 11 se altezza[mezzo] = h allora 12 posizione - mezzo ; 13 altrimenti 14 posizione - - 1; 15 restituisci posizione

Page 49: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

100 110 150 165 170 175 180

0 1 2 3 4 5 6

175

La ri

cerc

a di

coto

mic

a

indice

altezza

h

5

4

4

inizio

fine

mezzo

+1

1 trova h in altezza : 2 N = lunghezza di altezza ; 3 i nizio= O; 4 fine= N-1 ; 5 finché inizi o< f i ne 6 mezzo= int((inizi o+ fine)/2) ; 7 se altezza[mezzo] >= h allora 8 fine = mezzo ; 9 altrimenti

10 inizi o = mezzo+l ; 11 se altezza[mezzo] = h allora 12 posizione - mezzo ; 13 altrimenti 14 posizione - - 1; 15 restituisci posizione

Page 50: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

100 110 150 165 170 175 180

0 1 2 3 4 5 6

175

La ri

cerc

a di

coto

mic

a

indice

altezza

h

5

5

5

inizio

fine

mezzo

n = numero di elementi

Complessità: O(log(n))

1 trova h in altezza : 2 N = lunghezza di altezza ; 3 i nizio= O; 4 fine= N-1 ; 5 finché inizi o< f i ne 6 mezzo= int((inizi o+ fine)/2) ; 7 se altezza[mezzo] >= h allora 8 fine = mezzo ; 9 altrimenti

10 inizi o = mezzo+l ; 11 se altezza[mezzo] = h allora 12 posizione - mezzo ; 13 altrimenti 14 posizione - - 1; 15 restituisci posizione

Page 51: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

100 110 150 165 170 175 180

0 1 2 3 4 5 6

175

Usia

mo

la ri

cors

ione

? indice

altezza

h

1 trova h in altezza: 2 N = l unghezza di al t ezza ; 3 se N > 1 allora 4 mezzo = i nt((N-1)/2) ; 5 se altezza[mezzo] >= h allora 6 pos i zione= trova h in a l tezza [ O, mezzo] ; 7 altrimenti 8 pos i z i one += trova h in a l tezza[mezzo + l , N-1 ]; 9 altrimenti

10 se altezza[O] - h allora 11 12 13 14

pos i z i on e - O; altrimenti

pos i zione -1 ; restituisci posizione

Page 52: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Mettiamo in ordine

Page 53: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

7SE

LECT

SOR

T

Page 54: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

6SE

LECT

SOR

T

Page 55: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

5SE

LECT

SOR

T

Page 56: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

4SE

LECT

SOR

T

Page 57: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

3SE

LECT

SOR

T

Page 58: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

2SE

LECT

SOR

T

Page 59: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

1SE

LECT

SOR

T

Page 60: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

7+6+5+4+3+2+17*6/2

SELE

CT S

ORT

Page 61: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

INSE

RT S

ORT

Page 62: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

1

INSE

RT S

ORT

Page 63: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

2(1)IN

SERT

SOR

T

Page 64: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

3(1)IN

SERT

SOR

T

Page 65: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

4(3)IN

SERT

SOR

T

Page 66: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

5(4)IN

SERT

SOR

T

Page 67: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

6(1)IN

SERT

SOR

T

Page 68: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

7(4)

1+1+3+4+1+4<7*6/2

INSE

RT S

ORT

Page 69: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

1BU

BBLE

SOR

T

Page 70: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

2BU

BBLE

SOR

T

Page 71: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

2BU

BBLE

SOR

T

Page 72: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

3BU

BBLE

SOR

T

Page 73: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

3BU

BBLE

SOR

T

Page 74: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

4BU

BBLE

SOR

T

Page 75: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

4BU

BBLE

SOR

T

Page 76: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

5BU

BBLE

SOR

T

Page 77: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

5BU

BBLE

SOR

T

Page 78: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

6BU

BBLE

SOR

T

Page 79: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

6BU

BBLE

SOR

T

Page 80: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

7BU

BBLE

SOR

T

Page 81: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

8BU

BBLE

SOR

T

Page 82: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

8BU

BBLE

SOR

T

Page 83: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

9BU

BBLE

SOR

T

Page 84: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

10BU

BBLE

SOR

T

Page 85: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

10BU

BBLE

SOR

T

Page 86: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

11BU

BBLE

SOR

T

Page 87: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

11BU

BBLE

SOR

T

Page 88: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

11BU

BBLE

SOR

T

Page 89: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

12BU

BBLE

SOR

T

Page 90: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

12BU

BBLE

SOR

T

Page 91: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

13BU

BBLE

SOR

T

Page 92: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

14BU

BBLE

SOR

T

Page 93: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

14BU

BBLE

SOR

T

Page 94: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

15BU

BBLE

SOR

T

Page 95: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

15BU

BBLE

SOR

T

Page 96: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

15BU

BBLE

SOR

T

Page 97: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

16BU

BBLE

SOR

T

Page 98: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

17BU

BBLE

SOR

T

Page 99: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

18BU

BBLE

SOR

T

Page 100: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

19BU

BBLE

SOR

T

Page 101: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

19BU

BBLE

SOR

T

Page 102: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

20BU

BBLE

SOR

T

Page 103: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

21BU

BBLE

SOR

T

Page 104: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

21BU

BBLE

SOR

T

Page 105: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

22BU

BBLE

SOR

T

Page 106: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

22BU

BBLE

SOR

T

Page 107: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

22BU

BBLE

SOR

T

Page 108: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

La rete, lo spazio e il tempo

Page 109: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

ESPERIMENTON. 2Routing

Page 110: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

TU

Page 111: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

TU

Page 112: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

TU

Page 113: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

TU

Page 114: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

TU

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 115: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

TU

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 116: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

TU

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 117: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 118: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 119: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 120: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 121: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 122: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

seduto

alzato

Page 123: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Page 124: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

0••••••••••••• ••••••• •••••• •••••••••••••• •• • •••• •••••• ••••••• ••••••

Page 125: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

1••••••••••••• ••••••• •••••• • ••• •••••••••• • • • • ••• •••••• • ••• ••• ••••••

Page 126: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

2••••••••••••• ••••• •• •••••• • ••• • ••••••••• • ••• • •• •••••• • ••• • •• ••••••

Page 127: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

3•••••• ••••••• ••••• • • •••••• ••••• • •••••••• ••••• • • •••••• ••••• • • ••••••

Page 128: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

4•••••• • •••••• •••••• • •••••• •••••• • ••••••• •••••• • •••••• •••••• • ••••••

Page 129: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

5••••••••••••• ••••••• •••••• ••••••• • •••••• ••••••• •••••• ••••••• ••••••

Page 130: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

6••••••••••••• ••••••• • ••••• •••••••• • ••••• ••••••• • ••••• ••••••• ••••••

Page 131: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

7••••••• •• •••• ••••••• • • •••• ••••••••• • •••• ••••••• • • •••• ••••••• •• ••••

Page 132: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

8••••••••• • ••• ••••••• •• • ••• •••••••••• • ••• ••••••• •• • ••• ••••••• •• • •••

Page 133: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

9•••••••••• • •• ••••••• ••• • •• ••••••••••• • •• ••••••• ••• • •• ••••••• ••• • ••

Page 134: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

10••••••••••• • • ••••••• •••• • • •••••••••••• • • ••••••• •••• • • ••••••• •••• • •

Page 135: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

11•••••••••••• • ••••••• ••••• • ••••••••••••• • ••••••• ••••• • ••••••• ••••• •

Page 136: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

11•••••••••••• • ••••••• ••••• • ••••••••••••• • ••••••• ••••• • ••••••• ••••• •

Page 137: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

Quando un tuo vicino ti tocca la spallaSe sei sedutoAlzatiRicorda posizione del tuo vicinoFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

TUTocca a te, ma…Quando dico «Via!»Se sei AnnaAlzatiFinchè ci sono tuoi vicini sedutiTocca la spalla di un tuo vicino seduto

Page 138: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

TU

Quando un tuo vicino ti passa il suo messaggiopassa il messaggio al vicino di cui ricordi la posizione

Page 139: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

sorgentedestinazione

Page 140: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

••••••••••••• ••••••• •••••• ••••• ••• •••••• •• • •• •• •• •••• ••••••• •• • •••

Page 141: MATEMATICA E INFORMATICA - eventi.uniurb.it · Cosa ci serve per valutare la complessità di un algoritmo? Dimensionedei dati su cui opera ... MATEMATICA E INFORMATICA alessandro.bogliolo@uniurb.it

MATEMATICA E INFORMATICA

[email protected]

[email protected]://informatica.uniurb.it/

http://codemooc.org/algomooc/

Gra

zie

per l

’att

enzi

one