Saltar al contenido principal

Arrays

Un array (también llamado vector) es una colección finita, homogénea y ordenada de elementos.

Vamos a concretar a qué nos referimos con cada uno de los términos de la definición:

  • Colección finita: los arrays tienen un límite, es decir, se debe indicar cuál es el número máximo de elementos que se pueden almacenar. Al declarar un array, se debe especificar su longitud y no se podrá modificar posteriormente.
  • Colección homoguénea: los elementos contenidos en el array deben ser del mismo tipo. Al declarar un array, se debe especificar el tipo de datos que se va a almacenar en él.
  • Colección ordenada: los elementos de un array se almacenan de forma ordenada y se puede determinar cuál es el primer elemento, cuál es el segundo, y así sucesivamente. Los elementos se identifican por un índice. Un índice indica la posición en la cual se encuentra un elemento en la lista:
    • El primer elemento tiene el índice 0.
    • El segundo elemento tiene el índice 1.
    • Así sucesivamente hasta el último, el cual tiene como índice la longitud del array menos 1.
Importante

En el ámbito de la informática, se comienza a contar desde el número 0 y no desde el número 1 como se hace en la mayoría de ámbitos. Por lo tanto, el primer índice de una lista no es el índice 0, sino que el primer índice de una lista es el 0.

Por ejemplo, un array puede representarse así:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

En este ejemplo, el elemento array[3] corresponde al número 4 (recordemos que los índices empiezan a contar en 0).

En un array podemos modificar los valores que contienen los índices, siempre que correspondan con el tipo de dato almacenado. Lo que no podemos hacer es eliminar elementos o ampliar el array.

Arrays multidimensionales

Hasta ahora hemos visto arrays simples (también llamados unidimensionales), donde los elementos se organizan en una única lista. Sin embargo, en programación es frecuente necesitar estructuras más complejas para representar datos en forma de tabla, cubo o incluso con más dimensiones.

A estos se les denomina arrays multidimensionales.

Arrays bidimensionales (matrices)

Un array bidimensional puede imaginarse como una tabla formada por filas y columnas, muy parecido a una hoja de cálculo.

Por ejemplo, una matriz de 3 filas y 4 columnas puede representarse así:

[ [1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12] ]
  • El primer índice indica la fila.
  • El segundo índice indica la columna.

En este ejemplo, el elemento matriz[1][2] corresponde al número 7 (fila 1, columna 2, recordando que se empieza desde 0).

Este tipo de arrays se utiliza mucho para representar tableros de juegos (ajedrez, sudoku…), imágenes (donde cada celda es un píxel) o matrices matemáticas.

Arrays tridimensionales

Un array tridimensional añade una tercera dimensión. En lugar de pensar en una tabla, podemos imaginarlo como un cubo de datos.

Ejemplo de un array 3D con tamaño 2 × 3 × 3:

[
[ [1, 2, 3],
[4, 5, 6],
[7, 8, 9] ],

[ [10, 11, 12],
[13, 14, 15],
[16, 17, 18] ]
]

Aquí:

  • El primer índice selecciona el "bloque" (la capa del cubo).
  • El segundo índice indica la fila dentro del bloque.
  • El tercer índice señala la columna.

Por ejemplo, array3D[1][0][2] = 12.

Este tipo de estructura es útil para manejar datos en 3 dimensiones, como un modelo 3D, o un conjunto de imágenes ordenadas en el tiempo.

Arrays de N dimensiones

De forma general, se pueden crear arrays de N dimensiones. Cada índice adicional añade un "nivel" en la estructura de datos.

Aunque es difícil de visualizar más allá de tres dimensiones, en programación se utilizan mucho para representar:

  • Datos científicos (ej. tensores en física o álgebra lineal).
  • Redes neuronales e inteligencia artificial (los tensores de 4D o más son habituales).
  • Simulaciones complejas (ej. espacio-tiempo, coordenadas múltiples).