Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
E-mail: fclarizia@unisa.it
Materiale didattico
prodotto dal
prof. A. Della Cioppa
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
75 12 57 30 3
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
Passo 1 i=1
75 12 57 30 3
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
Passo 1 i=1
75 12 57 30 3
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
75 12 57 30 3
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
75 12 57 30 3
Passo 2 i=2
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
75 12 57 30 3
Passo 2 i=2
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
75 12 57 30 3
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
75 12 57 30 3
Passo 3 i=3
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
75 12 57 30 3
Passo 3 i=3
75 12 57 30 3
elemento da cercare = 57
1 2 3 4 5
75 12 57 30 3
Passo 3 i=3
Lelemento 57
si trova
confronto 57 con 57 sono uguali alla posizione
di indice 3
4
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
elemento da cercare = 1
1 2 3 4 5
Passo 1 i=1
75 12 57 30 3
elemento da cercare = 1
1 2 3 4 5
Passo 1 i=1
75 12 57 30 3
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Passo 2 i=2
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Passo 2 i=2
confronto 12 con 1 sono diversi
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Passo 3 i=3
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Passo 3 i=3
confronto 57 con 1 sono diversi
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Passo 4 i=4
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Passo 4 i=4
confronto 30 con 1 sono diversi
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Passo 5 i=5
5
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Passo 5 i=5
5
confronto 3 con 1 sono diversi
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
elemento da cercare = 1
1 2 3 4 5
75 12 57 30 3
Lelemento non
presente
nellinsieme
5
i=1
elemento V [i]
and
i<=n
si
i = i+1
no
no si
i <=n
Elemento Elemento
Non trovato trovato in posizione i
end
passo 1 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
10
passo 1 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
10
passo 1 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
10
passo 1 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
elemento di mezzo (10 > 5)
10
passo 1 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
elemento di mezzo (10 > 5)
passo 3 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
10
passo 1 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
elemento di mezzo (10 > 5)
passo 3 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
min = 1
max = N
med = (max+min)/2
elemento V [med] no
and
min < max
si
no si
elemento > V [med]
no si
max > min
Elemento Elemento
Non trovato trovato in posizione med
end 11
12
12
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
12
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
12
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 3 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
12
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 3 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
12
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 3 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 4 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
12
passo 2 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
passo 4 1 3 5 10 15 23 31 47 47 56 64
1 2 3 4 5 6 7 8 9 10 11
12
14
15
Implementazione dellalgoritmo
Esempio duso
16
17
18
Implementazione dellalgoritmo
Esempio duso
19
20
21
23
1 2 3 4 5
25 14 16 10 8
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 25 16 10 8
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 25 16 10 8
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 16 25 10 8
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 16 25 10 8
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 16 10 25 8
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 16 10 25 8
j i
j+1
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 16 10 8 25
j i
j+1
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 16 10 8 25
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 16 10 8 25
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 10 16 8 25
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 10 16 8 25
j i
j+1
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 10 8 16 25
j i
j+1
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
14 10 8 16 25
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
10 14 8 16 25
j j+1 i
Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
10 14 8 16 25
j i
j+1 Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
10 8 14 16 25
j i
j+1 Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
10 8 14 16 25
j i
j+1 Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
8 10 14 16 25
j i
j+1 Itera per i che varia da n a 2
Itera per j che varia da 1 a i-1
Se A[ j ] > A[j + 1]
Allora Scambia A[ j+1] e A[ j ];
1 2 3 4 5
10 25 8 14 16
i sup
inf
1 2 3 4 5
10 25 8 14 16
i min sup
inf
1 2 3 4 5
8 25 10 14 16
i min sup
inf
1 2 3 4 5
8 25 10 14 16
i sup
inf
1 2 3 4 5
8 25 10 14 16
i min sup
inf
1 2 3 4 5
8 10 25 14 16
i min sup
inf
1 2 3 4 5
8 10 25 14 16
i sup
inf
1 2 3 4 5
8 10 25 14 16
i min sup
inf
1 2 3 3 5
4
8 10 14 25 16
i min sup
inf
1 2 3 4 5
8 10 14 25 16
i sup
inf
1 2 3 4 5
8 10 14 25 16
i sup
inf min
1 2 3 4 5
8 10 14 16 25
i sup
inf min
31
Esempio di Implementazione
Caso duso
32
for i=1:1:array_len
function [x,y]=scambia(x,y)
indiceMinimo = trova_min(vettore, i, array_len);
temp=x;
[vettore(i), vettore(indiceMinimo)] = scambia
( vettore(i),vettore(indiceMinimo)); x=y;
end y=temp;
v_ord=vettore; end
end
Esempio di Implementazione
Caso duso