Curso de  Algoritmos Avanzados: Patrones de Arrays y Strings

Patrón de dos apuntadores en algoritmos

Curso de Algoritmos Avanzados: Patrones de Arrays y Strings

Contenido del curso

Dos Apuntadores

Patrón de dos apuntadores en algoritmos

Resumen

El patrón de dos apuntadores es una técnica que usa dos índices para recorrer una lista de datos de forma estratégica, evitando comparaciones redundantes y mejorando la complejidad de tus algoritmos. Si estás aprendiendo estructuras de datos o preparando entrevistas técnicas, dominarlo te abre la puerta a soluciones más limpias y eficientes.

¿Qué es el patrón de dos apuntadores en algoritmos?

En esencia, usas dos enteros que apuntan a posiciones dentro de una lista. Esos índices se mueven según condiciones específicas que dependen del problema que estás resolviendo.

La idea no es comparar todo contra todo. Es comparar solo lo que realmente importa, en el momento que importa. Y ahí está la ganancia.

¿Para qué sirve el patrón de dos apuntadores? Sirve para recorrer una lista usando dos índices que se mueven bajo ciertas condiciones, evitando comparaciones repetidas y reduciendo el costo computacional de tu algoritmo.

¿Por qué mejora la complejidad de tu algoritmo?

Cuando comparas todos los elementos contra todos, terminas haciendo trabajo de más. Repites operaciones que ya hiciste, y eso infla la complejidad sin necesidad.

Con dos apuntadores eliges qué comparar y cuándo moverte. Esa decisión inteligente recorta pasos innecesarios y hace que tu solución escale mejor con listas grandes.

¿Cómo puedes ubicar y mover los dos apuntadores?

No hay una sola forma. La posición inicial y la regla de movimiento dependen del problema que tengas enfrente. Pero hay configuraciones clásicas que vale la pena conocer.

Apuntadores en los extremos moviéndose hacia el centro

Una configuración típica es colocar un apuntador al inicio de la lista y otro al final, y luego moverlos hacia el centro hasta que se encuentren. Cuando se encuentran, ya revisaste todos los datos relevantes.

El movimiento no siempre es de a un paso a la vez. Incrementas el primer apuntador o disminuyes el segundo solo si se cumplen ciertas condiciones del problema [00:55].

Un caso clásico donde esta configuración es la solución óptima: verificar si una palabra es palíndroma, es decir, que se lee igual de izquierda a derecha que de derecha a izquierda [01:30].

¿Qué es una palabra palíndroma? Es una palabra que se escribe igual de izquierda a derecha que de derecha a izquierda, como reconocer o anilina. El patrón de dos apuntadores permite verificarlo comparando extremos hacia el centro.

Apuntadores consecutivos comparando elementos vecinos

Otra forma es colocar los dos apuntadores en posiciones contiguas. Por ejemplo, uno en el primer valor y otro en el siguiente, y los mueves juntos a lo largo de la lista [01:50].

Esto es útil cuando necesitas comparar o calcular algo entre un elemento y el que viene justo después, recorriendo toda la secuencia.

¿Cuándo conviene usar dos apuntadores?

Este patrón brilla cuando tu problema involucra listas o arreglos y necesitas:

  • Comparar elementos en extremos opuestos.
  • Evaluar pares de valores consecutivos.
  • Buscar coincidencias o diferencias sin recorrer la lista varias veces.
  • Reducir una solución de complejidad cuadrática a una lineal.

La clave está en identificar qué condición dispara el movimiento de cada apuntador. Esa lógica es la que define si la técnica encaja con tu problema.

A simple vista suena abstracto, y lo es hasta que lo aterrizas en código. En las siguientes clases vas a ver problemas concretos donde este patrón cobra sentido. ¿Qué problema crees que podrías resolver tú con dos apuntadores? Cuéntamelo en los comentarios.