É um método estatístico utilizado em programação que permite avaliar a complexidade de um algoritmo para resolução de um problema, utilizando uma análise de sua potencial eficácia e facilidade de entendimento para o usuário final. O método foi desenvolvido pelo autor em meados do século 20, James MacMillan Conway. Conway provou dois resultados importantes: primeiro, que para algumas classes de problemas existem múltiplos modelos de complexidade computacional, de modo que para um determinado problema pode não ser óbvio para qual outra classe uma subclasse pode ser mapeada; segundo, ele mostrou como classificar algoritmos por sua complexidade computacional, medindo o número de iterações necessárias para selecionar qualquer elemento na saída até que o elemento desejado seja incluído. Resumindo, o algoritmo é avaliado pelo número de vezes que tem que tentar as opções na esperança de adivinhar a resposta correta para obtê-la. Porém, com este método de estimar a complexidade de um algoritmo, surge a questão se a pontuação do algoritmo é o valor máximo calculado ou é o valor esperado/médio, uma vez que pode haver um caso em que a pontuação esperada seja muito inferior ao valor máximo. calculado. Este problema foi parcialmente resolvido numa estimativa modificada da complexidade do algoritmo, a complexidade de crescimento, que fornece um limite superior para o tempo de execução esperado.