Análisis de algoritmos

Author

Luis Alberto Rodríguez Catana

Published

May 12, 2025

¡Hola! Soy Luis Alberto Rodríguez Catana, estudié biología en la Universidad Autónoma Metropolitana, unidad Iztapalapa UAM-I). Desde hace tiempo me dedico a cuestiones ambientales como son estudios de impacto ambiental, rescates y reubicación de fauna silvestre en donde mi especialidad son los reptiles. Mi interés en la ciencia de datos radica en que actualmente se genera mucha información de especies y esos datos pueden ser clave para determinar el declive poblacional de muchos taxones, por este motivo es que he decidido incursionar en la MDCI de INFOTEC.

También soy fundador de Cencoatl capacitación un centro que se especializa en capacitaciones para especialistas de medio ambiente que aumentar sus conocimientos en temas ambientales.

Espero que disfruten estos reportes de experimentación que con mucho trabajo y dedicación se han preparado para todos ustedes.


¿Qué es un algoritmo?

En la ciencia de datos un algoritmo es un conjunto de reglas o procedimientos bien definidos que se utilizan para trabajar con grandes cantidades de datos. En realidad un procedimiento por etapas siendo un conjunto de reglas que hay que seguir para realizar una tarea o resolver un problema.

De acuerdo con Gómez y Salgado. (2016) un algoritmo puede definirse de la siguiente forma: “un algoritmo permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad, dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final”, en donde su principal objetivo es la optimización de los tiempos de trabajo

¿Cuáles son los tipos de algoritmos?

Siguiendo lo publicado por Aguilera, 2024, existen diferentes tipos de algoritmos, y pueden estar clasificados de acuerdo con sus funciones, estos se enlistan a continuación:

Existen varios tipos de algoritmos, y su clasificación puede basarse en diversos criterios:

Secuenciales.
  1. Lineales: Realizan una secuencia de operaciones sin bucles o decisiones complejas.

  2. Secuenciales: Ejecutan pasos en orden secuencial.

Iterativos.
  1. Bucles: Utilizan estructuras de repetición (for, while) para ejecutar un conjunto de instrucciones varias veces.
Recursivos.
  1. Recursión: Se llaman a sí mismos para resolver subproblemas más pequeños del mismo tipo.
Búsqueda.
  1. Búsqueda Secuencial: Examina cada elemento en secuencia hasta encontrar el valor buscado.

  2. Búsqueda Binaria: Eficiente en listas ordenadas, divide repetidamente la búsqueda a la mitad.

  3. Búsqueda por Hash: Utiliza funciones de hash para acceder rápidamente a datos.

Ordenamiento.
  1. Ordenamiento Burbuja: Intercambia elementos adyacentes hasta que la lista esté ordenada.

  2. QuickSort: Divide la lista en subgrupos, ordena cada subgrupo y los combina.

  3. MergeSort: Divide la lista a la mitad repetidamente, ordena cada mitad y fusiona las dos partes ordenadas.

  4. Insertion Sort, Selection Sort, etc.: Otros algoritmos de ordenamiento.

Grafos.
  • Búsqueda en Profundidad (DFS): Explora tan lejos como sea posible a lo largo de cada rama antes de retroceder.

  • Búsqueda en Anchura (BFS): Explora todos los nodos vecinos a la vez antes de pasar a los nodos siguientes.

Una vez explicados algunos conceptos vistos durante el periodo escolar, se debe hacer mención que este sitio web es un repositorio donde se pueden consultar los trabajos relacionados con el análisis de algoritmos y estructuras de datos, estos ejercicios tuvieron como finalidad desarrollar las habilidades para poder optimizar los recursos computacionales para reducir costos o incluso procesar grandes cantidades de datos en menos tiempo.

Durante el semestre que comprendió el periodo de enero a mayo de 2025, se realizaron 5 experimentos, en donde cada uno de ellos plantea problemas de escalabilidad, búsquedas acotadas, tiempos de ejecución en la solución de matrices, entre otros. Los trabajos presentados se elaboraron con dos tipos de lenguajes uno de ellos es Julia el cual es un lenguaje de alto rendiiento diseñado para tareas de computación científica, Machine Learning, ciencia de datos y cálculos matemáticos avanzados.

El segundo lenguaje empleado fue Python, este sustituyo a Julia cuando la salida no puedo ser completada debido a los errores que no pudieron ser solucionados a causa de la poca experiencia con el lenguaje y la documentación escasa con la que cuenta para la solución de determinados problemas.

Cunado fue posible se utilizó lo recomendando en el “Curso Introductorio al Análisis de Algoritmos con Julia” proporcionado por el Dr. Eric Sadit Téllez Ávila, para la resolución de problemas.

Referencias.


© 2025 Luis Alberto Rodríguez Catana.

Maestría en Ciencia de datos e información.

Todos los derechos reservados.