Actividad 3- Análisis de Algoritmos
Es importante comprender que diseñar un algoritmo no consiste únicamente en encontrar una solución correcta a un problema, sino también en determinar qué tan eficiente es dicha solución. El análisis de algoritmos permite estudiar los recursos que requiere un procedimiento para ejecutarse, principalmente el tiempo de procesamiento y el espacio de memoria, considerando el tamaño de los datos de entrada. Este análisis es fundamental para seleccionar soluciones que puedan responder adecuadamente incluso cuando aumenta la cantidad de información que debe procesarse.
El análisis comienza con la identificación de las operaciones fundamentales que realiza un algoritmo y de la relación que existe entre estas operaciones y el tamaño de la entrada. A partir de ello, es posible estudiar diferentes escenarios de ejecución: mejor caso, caso promedio y peor caso. Esta perspectiva permite comprender que dos algoritmos pueden resolver correctamente el mismo problema, pero presentar comportamientos muy diferentes en términos de rendimiento y utilización de recursos.
Uno de los principales instrumentos para expresar este comportamiento es la notación Big O (O), utilizada para representar cómo crece el costo de un algoritmo a medida que aumenta el tamaño de los datos. Complejidades como O(1), O(log n), O(n), O(n log n) y O(n²) permiten comparar diferentes estrategias y reconocer cuáles pueden resultar más apropiadas dependiendo de las características del problema. Por ejemplo, algoritmos de búsqueda y ordenamiento pueden presentar diferencias importantes en su eficiencia aun cuando produzcan el mismo resultado.
En Algoritmos II, el propósito es que el estudiante desarrolle una visión crítica frente a las soluciones computacionales, pasando de simplemente "hacer que el algoritmo funcione" a preguntarse "qué tan eficiente es y por qué". Para ello, se parte de la descripción de la solución en lenguaje natural, se construye el pseudocódigo, se implementa posteriormente en un lenguaje de programación y finalmente se analiza su comportamiento. De esta manera, el análisis de algoritmos se convierte en una herramienta esencial para diseñar soluciones correctas, eficientes, escalables y técnicamente fundamentadas.

