Si estudias programación de seguro habrás escuchado alguna vez sobre la complejidad algoritmica. Déjame darte un escenario antes de comenzar a la acción.
Cuando quieres resolver un problema tienes una variedad de algoritmos que pueden llegar a la solución. Solo que al tener varias soluciones nos lleva a la siguiente pregunta, ¿Cuál de ellos es el más eficiente?
Recordemos que un algoritmo es finito, preciso y eficiente. Como buen programador, tu misión siempre será llevar las buenas prácticas en el desarrollo. Y en este caso es crear programas eficientes y rápidos para resolver un problema.
¿Se imaginan que para enviar los datos de un formulario tarde minutos y no en segundos? De seguro te sentirías horrible. Y aquí es donde entra la complejidad algortímica a solucionarlo.
¿Qué es la complejidad algoritmica?
La complejidad algoritmica es una ciencia que se encarga de calcular la velocidad o el tamaño de un algoritmo. Cada lenguaje de programación y computadora puede variar su valor numérico, sin embargo, su medición es la misma
Los dos tipos de complejidad muy conocidos son:
- Complejidad Espacial: Calcula el tamaño del algoritmo.
- Complejidad Temporal: Calcula el tiempo en que tarda en ejecutar el algoritmo
¿Por qué aprender acerca Complejidad Algorítmica?
Si estás buscando que tu código mantenga su tiempo de ejecución o que el algoritmo ocupe poco espacio al momento de ejecutarse, sin importar la cantidad de datos de entrada, esto es un beneficio para tu programa porque lo ayuda a ser eficiente y es la ayuda que te trae la complejidad algoritmica.
En otro post profundizaré más acerca de la Complejidad Espacial, Complejidad Temporal y Analisís Asintótico (Otro factor elemental).
¿Conocian acerca de este tema? ¿Creen que hayan solo dos tipos de complejidades o habrá más? Me gustaría saber su opinión en los comentarios y espero que les haya gustado esta introducción.