Estou analisando alguns tempos de execução de diferentes for-loops e, à medida que estou adquirindo mais conhecimento, estou curioso para entender esse problema que ainda tenho que descobrir. Eu tenho este exercício chamado "Quantas estrelas são impressas":
for (int i = N; i > 1; i = i/2) System.out.println("*");
As respostas para escolher são
A: ~log N
B: ~N
C: ~N log N
D: ~0.5N^2
Então a resposta deve ser A e eu concordo com isso, mas do outro lado ... Digamos o N = 500
que seria Log N
então? Seria 2,7. E daí se dissermos isso N=500
em nosso exercício acima? Definitivamente, isso imprimiria mais han 2.7 estrelas? Como isso está relacionado?
Porque faz sentido dizer que, se o loop for fosse assim:
for (int i = 0; i < N; i++)
imprimiria N
estrelas.
Espero encontrar uma explicação para isso aqui, talvez eu esteja interpretando todas essas coisas erradas e pensando mal sobre isso. Desde já, obrigado.