Então, deixe-me esclarecer algumas coisas, você está interessado na notação big-O - isso significa limite superior . Em outras palavras, não há problema em contar mais etapas do que você realmente faz. Em particular, você pode modificar o algoritmo para
...
for (j = 0; j < n; j++)
...
Portanto, você tem dois loops aninhados, cada loop é executado vezes, o que fornece um limite superior de O ( n 2 )nO ( n2)
Obviamente, você gostaria de ter uma boa estimativa para o limite superior. Portanto, para conclusão, queremos determinar um limite inferior. Isso significa que não há problema em contar menos etapas. Então considere a modificação
for (i = n/2; i < n; i++)
for (j = 0; j < n/2; j++)
sum++;
Aqui, realizamos apenas algumas das iterações de loop. Mais uma vez que têm dois circuitos encaixados, mas desta vez que temos iterações por ciclo, o que mostra que têm, pelo menos, n 2 / 4 adições. Nesse caso, denotamos esse limite inferior assintótico por Ω ( n 2 ) . Como os limites inferior e superior coincidem, podemos até dizer que n 2 é um limite assintótico apertado e escrevemos Θ ( n 2 ) .n / 2n2/ 4Ω ( n2)n2Θ ( n2)
Se você quiser saber mais, leia aqui .