El análisis de algoritmos representa la cantidad de recursos temporales y de espacio que necesita un algoritmo para resolver un problema. La complejidad de un algoritmo se mide por la cantidad de tiempo y memoria requeridos y depende de cómo crece el tiempo de ejecución a medida que aumenta el tamaño del problema. El objetivo del análisis de algoritmos es analizar el comportamiento de un algoritmo cuando se aumenta el tamaño del problema para determinar su eficiencia de forma asintótica.