Vettori

Vettori unidimensionali

Supponiamo che il primo elemento di $V$ sia $V[0]$. Dato $i,0\leq i<n,$ l'indirizzo in memoria di $V[i]$ è $\alpha + k*i$

Si noti come l'indirizzo venga **calcolato in tempo $O(1)$ (**una somma e una moltiplicazione)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f06842c6-ff23-4c92-8536-766a77e7315e/Untitled.png

Fissato un tipo base $U$ e $n\in \N$, un vettore di lunghezza n è un elemento di $U^n$=$UU...*U$ (n volte)

Sintassi: molti linguaggi di programmazione usano l'operatore []:

$PROIEZIONE \rarr x=A[i]$

$SOSTITUZIONE \rarr A[i] = z$

Implementazione:

Se un singolo oggetto di tipo $U$ richiede $k$ registri, allora $A \in U^n$ viene memorizzato in $k*n$ registri consecutivi.

Noti $\sigma$ (indirizzo base del vettore) e i (indice), l'indirizzo di $A[i]$ è calcolato (in esecuzione) in tempo $O(1)$