O problema de parada indica que é impossível escrever um programa que possa determinar se outro programa é interrompido para todos os programas de entrada possíveis .
Eu posso, no entanto, certamente escrever um programa que pode calcular o tempo de execução de um programa como:
for(i=0; i<N; i++)
{ x = 1; }
e retorne uma complexidade de tempo de , sem nunca executá-lo.
Para todos os outros programas de entrada, ele retornaria um sinalizador indicando que não era possível determinar a complexidade do tempo.
Minha pergunta é esta:
Quais condições devem ser mantidas, para que possamos determinar algoritmicamente a complexidade de tempo de um determinado programa?
* Se houver uma referência canônica ou artigo de revisão, eu apreciaria um link para ele nos comentários.