Análisis de problemas y tipos de algoritmos

Cómo enfrentar problemas reales antes de escribir código

Antes de pensar en soluciones, es necesario entender el problema. Analizar correctamente una situación permite tomar mejores decisiones y construir algoritmos más claros y efectivos.

Ver contenido

Analizar el problema antes de resolverlo

Todo problema, antes de resolverse, debe entenderse. Analizar una problemática implica observar qué está ocurriendo, qué se espera como resultado y qué condiciones deben cumplirse.

Qué debe cumplir una solución

Requisitos funcionales

Definen qué debe hacer la solución. Son las acciones, procesos o resultados que el sistema debe cumplir.

Requisitos no funcionales

Definen cómo debe comportarse la solución. Incluyen aspectos como tiempo de respuesta, seguridad o eficiencia.

Un ejemplo rápido: del problema a la solución

Antes de pensar en código, se entiende el problema.

Ejemplo: “Organizar mis tareas del día”

Objetivo: ver mis tareas ordenadas para decidir qué hago primero.

Entradas: lista de tareas (nombre, prioridad, fecha).

Salida: lista ordenada (primero lo más urgente).

Reglas: no perder tareas, mantener prioridades, mostrar claro.

Descomposición:

  • Capturar tareas
  • Definir criterio (prioridad/fecha)
  • Ordenar la lista
  • Mostrar el resultado

“Esto todavía no es ‘programar’. Es aprender a pensar el problema con orden.”

Dividir para entender mejor

Los problemas complejos se vuelven manejables cuando se dividen en partes más pequeñas. Descomponer un problema permite analizar cada elemento por separado y construir soluciones paso a paso.

Tipos de algoritmos según su función

No todos los algoritmos hacen lo mismo.
Dependiendo del objetivo, existen distintos tipos de algoritmos que se utilizan para resolver problemas específicos.
A continuación se presentan algunos de los más comunes, explicados con ejemplos cotidianos.

Algoritmos de búsqueda

Qué hacen:
Permiten encontrar un elemento específico dentro de un conjunto de datos.

Ejemplo cotidiano:
Buscar un contacto en la lista de tu celular.
Revisas nombre por nombre hasta encontrar a la persona que necesitas, o usas el buscador para ir directamente a ella.

Algoritmos de ordenación

Qué hacen:
Organizan elementos siguiendo un criterio, como de menor a mayor o de la A a la Z.

Ejemplo cotidiano:
Ordenar una lista de tareas por prioridad,
o acomodar libros en una estantería según su tamaño o autor.

Diagrama de tipos de algoritmos

Algoritmos recursivos

Qué hacen:
Resuelven un problema dividiéndolo en versiones más pequeñas del mismo problema.

Ejemplo cotidiano:
Guardar cajas dentro de otras cajas del mismo tipo.
Para guardar una caja grande, primero debes guardar las cajas más pequeñas que van dentro.

Algoritmos de aproximación

Qué hacen:
Buscan una solución cercana a la mejor posible cuando encontrar la solución exacta es muy costoso o complejo.

Ejemplo cotidiano:
Elegir la ruta más rápida para llegar a casa cuando hay tráfico.
No siempre encuentras el camino perfecto, pero sí uno lo suficientemente bueno.

Algoritmos genéticos

Qué hacen:
Simulan procesos de evolución y selección para mejorar soluciones con el tiempo.

Ejemplo cotidiano:
Probar distintas formas de estudiar para un examen y quedarte con la que te da mejores resultados, ajustándola con el tiempo.

Por ahora, lo importante es reconocer el enfoque correcto según el problema. En esta página solo identificamos los tipos; en las siguientes páginas los trabajaremos con ejemplos.

Antes de programar, es fundamental aprender a analizar. Una buena solución no nace del código, nace de entender correctamente el problema.

Copyright © 2026 Cardenas.com.co