Sto analizzando alcuni tempi di esecuzione di diversi cicli di apertura e, poiché sto acquisendo più conoscenza, sono curioso di capire questo problema che devo ancora scoprire. Ho questo esercizio chiamato "Quante stelle sono stampate":
for (int i = N; i > 1; i = i/2) System.out.println("*");
Le risposte tra cui scegliere sono
A: ~log N
B: ~N
C: ~N log N
D: ~0.5N^2
Quindi la risposta dovrebbe essere A e sono d'accordo, ma dall'altra parte .. Diciamo N = 500
cosa sarebbe Log N
quindi? Sarebbe 2.7. Quindi, cosa succede se diciamo che N=500
sul nostro esercizio sopra? Questo sicuramente stamperebbe più di 2,7 stelle? Com'è collegato?
Perché ha senso dire che se il ciclo for ha questo aspetto:
for (int i = 0; i < N; i++)
stamperebbe N
stelle.
Spero di trovare una spiegazione per questo qui, forse sto interpretando tutte queste cose sbagliate e pensandoci male. Grazie in anticipo.