CONCEPTOS BASE

Estructura de datos

Forma de organizar datos en memoria. Elegir la correcta suele hacer más por el rendimiento que optimizar el código que los recorre.

Nivel · principiante3 min de lecturaActualizado 28 ago 2026
También conocido como: Colección, Tipo de dato compuesto

Definición

Una estructura de datos es la forma en que se organizan los datos en memoria para poder trabajar con ellos.

Y hay una idea que conviene interiorizar pronto: elegir la estructura correcta suele hacer más por el rendimiento que optimizar el código que la recorre. Cambiar de estructura convierte un problema lento en uno rápido; afinar el código de una estructura mal elegida solo lo hace un poco menos lento.

Las que se usan todos los días

Array o lista. Elementos en orden, accesibles por posición. Buena para recorrer y para mantener el orden. Buscar dentro de ella obliga a recorrerla entera.

Mapa o diccionario. Pares clave→valor. Buscar por clave es instantáneo, sin importar cuántos elementos haya. Es la estructura que resuelve más problemas de rendimiento en la práctica.

Conjunto. Colección sin duplicados y sin orden garantizado. Sirve para dos cosas muy frecuentes: eliminar repetidos y comprobar si algo ya está.

Cola y pila. La cola atiende por orden de llegada; la pila, al revés — el último en entrar es el primero en salir.

Árbol. Datos jerárquicos: un menú, una estructura de carpetas, categorías con subcategorías.

Grafo. Elementos conectados entre sí sin jerarquía. Una red de relaciones.

La elección que más se repite: lista o mapa

Es la decisión práctica que aparece continuamente:

Si vas a recorrer todo y el orden importa → lista. Si vas a buscar elementos concretos por un identificador → mapa.

La diferencia no es de estilo. Buscar en una lista de 5.000 elementos exige recorrerla; en un mapa es una operación directa. Repetido dentro de un bucle, esa diferencia son segundos frente a milisegundos.

Ejemplo práctico

En un sistema de gestión, la estructura de datos decide el rendimiento de las pantallas que cruzan información.

El caso concreto: pintar un listado de 2.000 pedidos mostrando el nombre del cliente de cada uno. Con los clientes en una lista, cada pedido obliga a recorrerla buscando el suyo. Con los clientes en un mapa indexado por id, cada pedido lo encuentra directamente.

Mismo resultado en pantalla. La diferencia entre medio minuto y un instante.

Lo que aprendí: el patrón se repite tanto que ya es un reflejo — si voy a buscar lo mismo muchas veces, primero lo meto en un mapa. Es una línea de código antes del bucle y ahorra el problema entero.

Lo apliqué literalmente al construir el mapa del diccionario: 290 términos y más de mil conexiones. Averiguar los vecinos de un nodo recorriendo la lista de aristas en cada fotograma habría hecho la página inservible; precalculando un mapa de vecinos una sola vez, el dibujo es instantáneo. Ver algoritmo.

El segundo aprendizaje, sobre el conjunto: es la estructura más infravalorada. Comprobar «¿ya he procesado este?» con una lista es lento y con un conjunto es inmediato. Aparece en deduplicaciones, en control de elementos vistos y en cualquier proceso que no deba repetir trabajo — por ejemplo, al evitar que un mismo aviso se envíe dos veces.

Y una advertencia sobre memoria: meter todo en mapas acelera a costa de ocupar memoria. Con miles de registros es intrascendente; con millones hay que pensarlo, y probablemente el sitio correcto para ese cruce sea la base de datos y no la memoria del programa.

Errores comunes

  • Usar listas para buscar cuando se busca muchas veces.
  • Recorrer una lista dentro de un bucle que recorre otra.
  • No usar conjuntos para deduplicar o para controlar lo ya visto.
  • Cargar en memoria lo que la base de datos podría cruzar mejor.
  • Elegir la estructura por costumbre y no por cómo se va a usar.
  • Confundir la estructura con el formato. JSON es un formato de intercambio; el mapa es cómo lo tienes en memoria.

Cuándo pensar en ello

Antes de escribir el bucle, no después de que vaya lento.

La pregunta que decide casi siempre: ¿voy a recorrer esto entero, o voy a buscar cosas concretas dentro? La respuesta determina la estructura, y la estructura determina el rendimiento.

Referencias

Tagsprogramacionfundamentosrendimientoconceptos-base
Escrito por
Antonio Echeverría

Dirijo IMDICA, una empresa de suministro industrial, desde 2007. Escribo estas definiciones desde el lado de quien las usa para decidir, no desde el de quien las estudia.

Si necesitas que alguien construya esto de verdad y no solo lo explique, eso es lo que hago en AE Works.