8: I dati e la loro struttura nella programmazione( ARRAY, MATRICI, RECORD) Vers. 10.0 – Maggio 2025
2 ° Passo
L’ effetto di quanto illustrato in precedenza ridurrà la " porzione " del vettore sul quale continuare la ricerca. Infatti ora la " porzione " del vettore corrente su cui effettuare la ricerca, corrisponderà a quella con i valori dell’ indice compresi tra:
primo � centro + 1( ossia 5 + 1 = 6) ed ultimo che resta inalterato( ossia = 9) mentre da ciò deriva che il NUOVO elemento situato ora in posizione centrale avrà indice pari a: centro �( primo + ultimo) DIV 2 ossia centro �( 6 + 9) DIV 2 ossia centro � 7
8 elemento effettuo il confronto
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
-7 |
-4 |
2 |
5 |
6 |
8 |
12 |
16 |
23 |
1
6 primo
7 9 centro ultimo
Anche in questa nuova " porzione " del vettore sarà possibile il verificarsi di uno soltanto tra i seguenti tre casi: 1. l’ elemento da ricercare è proprio uguale all’ elemento centrale fissato. Allora l’ elemento ricercato appartiene alla nuova " porzione " del vettore e si trova in posizione centrale. La RICERCA in questo caso DEVE ESSERE ARRESTATA Nel nostro caso NO domanda: elemento = v [ centro ]? ossia 8 = v [ 7 ]? in quanto 8 = 12 E’ FALSO
2. l’ elemento da ricercare è più piccolo dell’ elemento centrale fissato. Si scartano tutti gli elementi della metà destra della nuova " porzione " del vettore e l’ ultimo elemento utile alla ricerca diventa quello immediatamente precedente all’ elemento centrale( ossia ultimo� centro – 1) Nel nostro caso SI domanda: elemento < v [ centro ]? ossia 8 < v [ 7 ]? in quanto 8 < 12 E’ VERO La RICERCA in questo caso DEVE CONTINUARE su una nuova porzione del " vettore " da specificare.
3. l’ elemento da ricercare è più grande dell’ elemento centrale fissato. Si scartano tutti gli elementi della metà sinistra della nuova " porzione " del vettore ed il primo elemento utile alla ricerca diventa quello immediatamente successivo all’ elemento centrale( ossia primo� centro + 1) Nel nostro caso NO domanda: elemento > v [ centro ]? ossia 8 > v [ 7 ]? in quanto 8 > 12 E’ FALSO
3 ° Passo
L’ effetto di quanto illustrato in precedenza ridurrà ulteriormente la " porzione " del vettore sul quale continuare la ricerca. Infatti ora avremo gli indici:
primo che resta inalterato( ossia = 6) ed ultimo � centro- 1( ossia = 7 – 1 = 6) mentre da ciò deriva che il NUOVO elemento situato ora in posizione centrale avrà indice pari a: centro �( primo + ultimo) DIV 2 ossia centro �( 6 + 6) DIV 2 ossia centro � 6
8 elemento effettuo il confronto
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
-7 |
-4 |
2 |
5 |
6 |
8 |
12 |
16 |
23 |
6 primo
6 ultimo
6 9 centro
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 28