🌱 Digital Garden

Search

Search IconIcon to open search

Arrays Estaticos

Last updated Aug 6, 2023 Edit Source

Un Array estatico siempre tiene el mismo tamaño (Tambien se dice que son de fixed size) sin importar que hagamos, no decidimos donde se guardaran nuestros valores, solo sabemos que tenemos un bloque de X tamaño y que los elementos estan de forma continua.

# Obtener datos en un Indice Especifico

Para obtener datos se tiene que hacer desde un indice especifico.

Para obtener una posicion exacta dentro de un array primero se debe multiplicar un offset de memoria por la posicion deseada. Gracias a los lenguajes con sistema de tipos el offset es inferido por el tipo de dato y nada mas tenemos que obtener la posicion deseada

1
2
int[] arr = {4, 5, 6}
int val = arr[1]

Efectivamente lo que hace este codigo es Desde el inicio desplazate una unidad de memoria de 32 bits (int) y guardamela en la variable ‘val’. De esta manera, obtenemos el valor 5.

Esta operacion siempre sera de tiempo constante, debido a que, si conocemos su indice, podremos obtener cualquier valor en cualquier momento.

# Manipular datos en un Indice Especifico

Para insertar y eliminar datos dentro de un array no se reduce ni incrementa el tamaño del array, sino directamente sobreescribe los datos que se encuentren en la posicion deseada.

1
2
int[] arr = {3, 4, 5}
arr[1] = 0;

En caso de querer conservar todos los datos de una rray sin querer sobreescribir nada, estariamos frente a una operacion bastante ineficiente debido a que esta necesita mover todos los otros elementos para guardar un espacio para el nuevo elemento que queremos insertar (Esta tardaria O(n)).

Lo mismo ocurre cuando queremos remover un elemento sin preservar espacios blancos, nos quedariamos con una operacion que necesita mover todos los elementos.

# Operaciones

OperacionBig O
Leer / Escribir el elemento iThO(1)
Insertar / Remover el ultimo elementoO(1)
Insertar en el MedioO(n)
Remover del medioO(n)

# Compromiso

# Ventajas

# Desventajas