Tempo de execução / complexidade de tempo para o loop while com raiz quadrada
Essa pergunta parece relativamente simples, mas não consigo encontrar o tempo de execução em termos de n.
Aqui está o problema:
j = n;
while(j >= 2) {
j = j^(1/2)
}
Eu realmente não preciso do tempo total de execução, só preciso saber como calcular a quantidade de vezes que a segunda e a terceira linhas são atingidas (elas devem ser as mesmas). Gostaria de saber se também existe algum tipo de fórmula para encontrar isso. Eu posso ver que o acima é equivalente a:
for(j = n; n >= 2; j = j^(1/2)
Observe que o tipo de operação não importa, cada vez que uma linha é executada, conta como 1 unidade de tempo. Portanto, a linha 1 seria apenas uma unidade de tempo, a linha 2 seria:
0 unidades de tempo se n fosse 1,1 unidade de tempo se n fosse 2,2 unidades de tempo se n fossem 4,3 unidades de tempo, se n forem 16, etc.Agradecemos antecipadamente a quem oferecer ajuda! É muito apreciado!