array
Struttura di dati complessa impiegata in molti linguaggi di programmazione per la gestione di insiemi ordinati di dati. Spesso, mutuando il linguaggio dalla matematica, gli array sono distinti in vettori e matrici, a seconda del numero di dimensioni impiegate: in particolare, un vettore è un array unidimensionale (caratterizzato da un solo indice), mentre una matrice rappresenta un array a più dimensioni (caratterizzato da più indici). Un array unidimensionale o vettore è dunque un insieme di variabili dello stesso tipo identificate con un unico nome simbolico e da un indice intero positivo. Ogni linguaggio di programmazione presenta una propria sintassi per descrive i vettori. In generale, la sintassi è per es. tipo nome [lunghezza]. Un array multidimensionale è invece definito come un insieme di variabili dello stesso tipo identificate con un unico nome simbolico e con un numero di indici pari alle sue dimensioni. Un array a due dimensioni corrisponde allora a una matrice righe-colonne, mentre per es. una dichiarazione di array come double a[4] [3] rappresenta in un linguaggio come il linguaggio C una matrice di 12 elementi organizzati in 4 righe e 3 colonne. A ogni dichiarazione di array resta associato uno spazio di memoria costituito da un numero di celle contigue pari alla dimensione dell’array stesso. L’occupazione fisica di memoria (ossia il numero di byte riservati) dipende ovviamente dal tipo di dato contenuto nel vettore (intero, reale, singola o doppia precisione, carattere, stringa ecc). Nella programmazione, gli array si prestano a molteplici usi, in particolare quando si debbano memorizzare grandi quantità di dati tra loro legati (per es., tabelle contenenti tipologie di dati diverse). Esistono molti algoritmi che agiscono su tale struttura di dati, consentendo operazioni fondamentali in modo molto efficiente. I principali problemi che possono essere efficacemente trattati sfruttando la struttura vettoriale per un insieme di dati sono il calcolo di massimi, minimi e valori medi, l’ordinamento, la ricerca di un elemento all’interno di una sequenza e così via. Per ognuno di essi esistono algoritmi ottimi in grado di risolverli in tempi rapidi.
→ Programmazione, linguaggi di