AlgoMOOC 01.01 Algoritmi quotidiani

Post on 21-Jan-2018

10.232 views 0 download

Transcript of AlgoMOOC 01.01 Algoritmi quotidiani

Algoritmi quotidiani01.01

alessandro bogliolo

http://codemooc.org/algoritmi/

Sai metterle in ordine crescente?

Sai dirmi come hai fatto?

Sai metterli in ordine di altezza?

Sai dirmi come hai fatto?

Quale carta hai mosso per prima?

Quante mosse hai fatto?

I COMPUTER NON HANNO VISIONE

D’INSIEME

VEDONO AL PIU’ DUE COSE ALLA VOLTA

Come scegli la carta iniziale?

10

10 2 1 8 5 6 8

10

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

10

10 2 1 8 5 6 8

0 1 2 3 4 5 6

2

2

2

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

3

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

4

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

5

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

6

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

7

E adesso?

10

10 2 1 8 5 6 8

0 1 2 3 4 5 6

10

10

10 2 1 8 5 6 8

0 1 2 3 4 5 6

2

201

2

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

312

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

42

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

52

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

62

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

7

E adesso?

2

10 2 1 8 5 6 8

0 1 2 3 4 5 6

1

72

101

10 2 1 8 5 6 8

0 1 2 3 4 5 6

2

7+61

101

10 2 1 8 5 6 8

0 1 2 3 4 5 6

5

7+6+54

101 105

10 2 1 8 5 6 8

0 1 2 3 4 5 6

6

7+6+5+45

101 105 86

10 2 1 8 5 6 8

0 1 2 3 4 5 6

8

7+6+5+4+35

101 105 86 108

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

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

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

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?

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à?

E’ l’unico modo per ordinare un array?