Es un método estadístico utilizado en programación que permite evaluar la complejidad de un algoritmo para resolver un problema, mediante un análisis de su efectividad potencial y facilidad de comprensión para el usuario final. El método fue desarrollado por el autor a mediados del siglo XX, James MacMillan Conway. Conway demostró dos resultados importantes: primero, que para algunas clases de problemas existen múltiples modelos de complejidad computacional, de modo que para un problema dado puede no ser obvio a qué otra clase se puede asignar una subclase; en segundo lugar, mostró cómo clasificar algoritmos por su complejidad computacional midiendo el número de iteraciones necesarias para seleccionar cualquier elemento en la salida hasta incluir el deseado. En resumen, el algoritmo se clasifica según la cantidad de veces que tiene que probar las opciones con la esperanza de adivinar la respuesta correcta para obtenerla. Sin embargo, con este método de estimación de la complejidad de un algoritmo, surge la pregunta de si la puntuación del algoritmo es el valor máximo calculado o es el valor esperado/promedio, ya que puede darse el caso en que la puntuación esperada sea mucho menor que la máxima. calculado. Este problema se ha resuelto parcialmente en una estimación modificada de la complejidad del algoritmo, la complejidad de crecimiento, que proporciona un límite superior en el tiempo de ejecución esperado.