AlgoMOOC 01.01 Algoritmi quotidiani

44
Algoritmi quotidiani 01.01 alessandro bogliolo http://codemooc.org/algoritmi/

Transcript of AlgoMOOC 01.01 Algoritmi quotidiani

Page 1: AlgoMOOC 01.01 Algoritmi quotidiani

Algoritmi quotidiani01.01

alessandro bogliolo

http://codemooc.org/algoritmi/

Page 2: AlgoMOOC 01.01 Algoritmi quotidiani
Page 3: AlgoMOOC 01.01 Algoritmi quotidiani

Sai metterle in ordine crescente?

Page 4: AlgoMOOC 01.01 Algoritmi quotidiani

Sai dirmi come hai fatto?

Page 5: AlgoMOOC 01.01 Algoritmi quotidiani

Sai metterli in ordine di altezza?

Page 6: AlgoMOOC 01.01 Algoritmi quotidiani

Sai dirmi come hai fatto?

Page 7: AlgoMOOC 01.01 Algoritmi quotidiani

Quale carta hai mosso per prima?

Page 8: AlgoMOOC 01.01 Algoritmi quotidiani
Page 9: AlgoMOOC 01.01 Algoritmi quotidiani
Page 10: AlgoMOOC 01.01 Algoritmi quotidiani
Page 11: AlgoMOOC 01.01 Algoritmi quotidiani
Page 12: AlgoMOOC 01.01 Algoritmi quotidiani
Page 13: AlgoMOOC 01.01 Algoritmi quotidiani
Page 14: AlgoMOOC 01.01 Algoritmi quotidiani
Page 15: AlgoMOOC 01.01 Algoritmi quotidiani

Quante mosse hai fatto?

Page 16: AlgoMOOC 01.01 Algoritmi quotidiani

I COMPUTER NON HANNO VISIONE

D’INSIEME

Page 17: AlgoMOOC 01.01 Algoritmi quotidiani

VEDONO AL PIU’ DUE COSE ALLA VOLTA

Page 18: AlgoMOOC 01.01 Algoritmi quotidiani

Come scegli la carta iniziale?

Page 19: AlgoMOOC 01.01 Algoritmi quotidiani

10

10 2 1 8 5 6 8

Page 20: AlgoMOOC 01.01 Algoritmi quotidiani

10

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

Page 21: AlgoMOOC 01.01 Algoritmi quotidiani

10

10 2 1 8 5 6 8

0 1 2 3 4 5 6

2

2

Page 22: AlgoMOOC 01.01 Algoritmi quotidiani

2

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

3

Page 23: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

4

Page 24: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

5

Page 25: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

6

Page 26: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

7

E adesso?

Page 27: AlgoMOOC 01.01 Algoritmi quotidiani

10

10 2 1 8 5 6 8

0 1 2 3 4 5 6

10

Page 28: AlgoMOOC 01.01 Algoritmi quotidiani

10

10 2 1 8 5 6 8

0 1 2 3 4 5 6

2

201

Page 29: AlgoMOOC 01.01 Algoritmi quotidiani

2

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

312

Page 30: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

42

Page 31: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

52

Page 32: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

62

Page 33: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

7

E adesso?

2

Page 34: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

72

101

Page 35: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

2

7+61

101

Page 36: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

5

7+6+54

101 105

Page 37: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

6

7+6+5+45

101 105 86

Page 38: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

8

7+6+5+4+35

101 105 86 108

Page 39: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

8

7+6+5+4+3+26

101 105 86 108 108

Page 40: AlgoMOOC 01.01 Algoritmi quotidiani

10 2 1 8 5 6 8

0 1 2 3 4 5 6

7+6+5+4+3+2

101 105 86 108 108

Page 41: AlgoMOOC 01.01 Algoritmi quotidiani

SELE

CTI

ON

SO

RT

var array = [10,2,1,8,5,6,8];var posizione;var minimo;

for (i=0; i < array.length-1; i++) {minimo = array[i];posizione = i;for (j=i+1; j < array.length; j++) {

if (array[j] < minimo) {posizione = j;minimo = array[j];

}}array[posizione] = array[i];array[i] = minimo;

}

JavaScript

Page 42: AlgoMOOC 01.01 Algoritmi quotidiani

SELE

CTI

ON

SO

RT

var array = [10,2,1,8,5,6,8];var posizione;var minimo;

for (i=0; i < array.length-1; i++) {minimo = array[i];posizione = i;for (j=i+1; j < array.length; j++) {

if (array[j] < minimo) {posizione = j;minimo = array[j];

}}array[posizione] = array[i];array[i] = minimo;

}

E’ corretto?

Page 43: AlgoMOOC 01.01 Algoritmi quotidiani

SELE

CTI

ON

SO

RT

var array = [10,2,1,8,5,6,8];var posizione;var minimo;

for (i=0; i < array.length-1; i++) {minimo = array[i];posizione = i;for (j=i+1; j < array.length; j++) {

if (array[j] < minimo) {posizione = j;minimo = array[j];

}}array[posizione] = array[i];array[i] = minimo;

}

Qual è la sua complessità?

Page 44: AlgoMOOC 01.01 Algoritmi quotidiani

E’ l’unico modo per ordinare un array?