Lógica de ProgramaciónIntermedio· 11 min de lectura

Arrays y Listas

Los arrays agrupan múltiples valores bajo un único nombre, accesibles por índice. Aprende a crear, iterar y operar sobre arrays y listas con ejemplos prácticos.

RF

Renato Freitas

Actualizado el 5 de mayo de 2026

¿Qué es un array?

Imagina que necesitas almacenar las calificaciones de 30 alumnos. Con lo que sabes sobre variables, tendrías que crear nota1, nota2, nota3 ... nota30 — 30 variables separadas. Un array resuelve esto: una única variable 'notas' que puede guardar 30 valores, cada uno accesible por una posición numérica llamada índice.

Un array es una colección ordenada de elementos del mismo tipo, almacenados en posiciones contiguas en memoria. El índice es la dirección de cada elemento dentro del array. En casi todos los lenguajes de programación, los índices comienzan en cero — el primer elemento está en la posición 0, el segundo en la posición 1, y así sucesivamente.

Este detalle de comenzar en cero confunde a muchos principiantes. Si un array tiene 5 elementos, los índices válidos son 0, 1, 2, 3 y 4. Intentar acceder al índice 5 genera un error de 'índice fuera de límites' (index out of bounds) — uno de los bugs más comunes en programación.

🧮 Pruébalo tú mismo — CalcSim

¿Quieres más funciones? Descargar app CalcSim IA

Creando y accediendo a elementos

Pseudocódigo para crear un array de enteros con 5 posiciones: notas = [8, 7, 9, 6, 10]. Para acceder al tercer elemento: notas[2] (recuerda: índice 2 = tercera posición). Para modificar: notas[2] = 9.5.

Los arrays también pueden crearse vacíos con un tamaño definido y llenarse después. Esto es útil cuando los valores solo se conocerán durante la ejecución, como al leer datos del usuario o de un archivo.

Para recorrer todos los elementos de un array, combínalo con un bucle for: PARA i DE 0 HASTA tamaño - 1 HAZ procesar notas[i]. El tamaño del array generalmente es accesible mediante una propiedad como 'length' o 'tamaño'.

Operaciones comunes en arrays

Las operaciones más frecuentes son: calcular la suma, encontrar el máximo y el mínimo, contar elementos que satisfacen una condición y buscar un elemento específico.

Para encontrar el mayor valor: maximo = notas[0]; PARA i DE 1 HASTA tamaño - 1 HAZ SI (notas[i] > maximo) ENTONCES maximo = notas[i]. Comenzamos asumiendo que el primer elemento es el mayor y lo actualizamos cada vez que encontramos uno mayor.

Para búsqueda lineal (verificar si un valor existe): PARA i DE 0 HASTA tamaño - 1 HAZ SI (notas[i] == valorBuscado) ENTONCES mostrar 'Encontrado en ' + i Y ROMPER. En el peor caso, recorre todos los elementos. Para arrays ordenados, la búsqueda binaria es mucho más eficiente.

  • Suma: iniciar suma en cero y sumar cada elemento con un bucle
  • Máximo/mínimo: asumir el primero como referencia y comparar los demás
  • Búsqueda lineal: recorrer del inicio al final comparando cada elemento
  • Conteo: incrementar un contador cuando la condición sea verdadera

Array estático versus lista dinámica

Los arrays tradicionales tienen un tamaño fijo definido en la creación. Si creas un array para 10 elementos y necesitas el 11°, tendrás un problema. Esto los hace eficientes en memoria y acceso, pero rígidos en tamaño.

Las listas dinámicas (ArrayList en Java, list en Python, Array en JavaScript) crecen y se reducen automáticamente. Puedes añadir y eliminar elementos en cualquier momento. Internamente, muchas implementaciones usan arrays que se reasignan cuando es necesario.

La elección entre array y lista dinámica depende del caso: si el tamaño es fijo y conocido, un array es más eficiente. Si el tamaño varía, una lista dinámica es más conveniente. En la práctica, los principiantes suelen comenzar con listas dinámicas por su flexibilidad.

Arrays multidimensionales

Los arrays pueden tener más de una dimensión. Un array bidimensional es como una tabla con filas y columnas — piensa en una hoja de cálculo o en el tablero de un juego. Para acceder a un elemento: tabla[fila][columna].

Ejemplo: una cuadrícula 3x3 para el juego del gato (tres en raya). tabla[0][0] es la esquina superior izquierda; tabla[1][1] es el centro; tabla[2][2] es la esquina inferior derecha. Para recorrer toda la cuadrícula, necesitas dos bucles anidados: uno para las filas, otro para las columnas dentro de cada fila.

Los arrays tridimensionales y más existen pero raramente se usan directamente. Cuando necesitas estructuras de datos complejas, generalmente hay estructuras específicas (matrices, tensores en bibliotecas como NumPy) que ofrecen mejor soporte.

Preguntas frecuentes

¿Por qué los arrays comienzan en el índice 0 y no en el 1?

Por razones históricas de eficiencia de hardware. El índice representa el desplazamiento respecto al inicio del array en memoria. El primer elemento está en el desplazamiento 0, el segundo en el desplazamiento 1 (o 1 × tamaño_del_tipo). Lenguajes como MATLAB y Lua usan índice 1, pero la mayoría de los lenguajes modernos usa 0.

¿Qué ocurre si accedo a un índice fuera de los límites?

Depende del lenguaje. Java y Python lanzan una excepción inmediatamente con un mensaje claro. C y C++ tienen comportamiento indefinido — pueden acceder a la memoria de otra variable, bloquear el programa o parecer funcionar pero producir resultados incorrectos. Es un error grave en lenguajes de bajo nivel.

¿Cómo ordenar un array?

Los lenguajes modernos tienen funciones de ordenación nativas (sort() en Python, JavaScript y Java). Internamente, usan algoritmos como Quicksort o Timsort. Para el aprendizaje, vale la pena implementar manualmente Bubble Sort o Insertion Sort para entender cómo funciona la ordenación a nivel de comparaciones e intercambios.

¿Cuál es la diferencia entre array y string?

Un string puede pensarse como un array de caracteres. En muchos lenguajes, puedes acceder al i-ésimo carácter de un string con la misma notación de índice: nombre[0] retorna el primer carácter. La diferencia es que los strings tienen operaciones específicas para texto (búsqueda de patrón, concatenación, división) que los arrays genéricos no tienen.

¿Este artículo te fue útil?

Califica con estrellas para ayudarnos a mejorar el contenido.

Inicia sesión para calificar este artículo.

¿Aún tienes dudas?

El Profesor IA explica paso a paso

Haz una pregunta en lenguaje natural y recibe una explicación personalizada sobre Lógica de Programación — o cualquier otro tema.

¿Prefieres resolverlo en el móvil?

Descargar la app gratis →

Sigue aprendiendo