Prova con i numeri
1 2 3 4 5 6 7 8 |
+-----+-----+-----+ | x1 | x2 | x3 | +-----+-----+-----+------------+ | 100 | 9 | -8 | (x1 > x2)? | | 9 | 100 | -8 | (x2 > x3)? | | 9 | -8 | 100 | (x1 > x2)? | | -8 | 9 | 100 | | +-----+-----+-----+------------+ |
In generale
1 2 3 4 5 |
+----+----+----+ | x1 | x2 | x3 | Prima +----+----+----+ | r1 | r2 | r3 | Dopo +----+----+----+ |
1 2 3 4 5 |
+----+----+----+------------+ | x1 | x2 | x3 | (x1 > x2)? | Confronta x1 con x2 e se necessario effettua lo scambio dei valori +-\/-+-\/-+----+------------+ | m1 | M1 | x3 | | m1 è un minimo locale, M1 è un massimo locale. +----+----+----+------------+ |
1 2 3 4 5 6 7 |
+----+----+----+------------+ | x1 | x2 | x3 | (x1 > x2)? | +-\/-+-\/-+----+------------+ | m1 | M1 | x3 | (M1 > x3)? | Confronta M1 con x3 +----+-\/-+-\/-+------------+ | m1 | i1 | r3 | | In 3° posizione il massimo globale, in 2° posizione un valore intermedio. +----+----+----+------------+ |
1 2 3 4 5 6 7 8 9 |
+----+----+----+------------+ | x1 | x2 | x3 | (x1 > x2)? | +-\/-+-\/-+----+------------+ | m1 | M1 | x3 | (M1 > x3)? | +----+-\/-+-\/-+------------+ | m1 | i1 | r3 | (m1 > i1)? | Confronta m1 con i1 +-\/-+-\/-+----+------------+ | r1 | r2 | r3 | | In 1° posizione il minimo globale, in 2° il valore intermedio. +----+----+----+------------+ |
Per ordinare 3 dati sono necessari 3 confronti ed eventualmente 3 scambi
Codifica
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
If x1 > x2 Then Begin temp:=x1 ; x1 :=x2 ; x2 :=temp; End; If x2 > x3 Then Begin temp:=x2 ; x2 :=x3 ; x3 :=temp; End; If x1 > x2 Then Begin temp:=x1 ; x1 :=x2 ; x2 :=temp; End; |