Тож дозвольте мені уточнити кілька речей, вас цікавить нотація big-O - це означає верхню межу . Іншими словами, добре рахувати більше кроків, ніж ви насправді робите. Зокрема, ви можете змінити алгоритм на
...
for (j = 0; j < n; j++)
...
Таким чином , у вас є два вкладених циклу, кожен цикл виконується раз, що дає вам верхню межу знO (н2)
Звичайно, ви хочете мати хорошу оцінку для верхньої межі. Тож для завершення ми хочемо визначити нижню межу. Це означає, що добре рахувати менше кроків. Тож розглянемо модифікацію
for (i = n/2; i < n; i++)
for (j = 0; j < n/2; j++)
sum++;
Тут ми виконуємо лише деякі петлі-ітерації. Знову у нас є дві вкладені петлі, але на цей раз у нас є ітерації на цикл, що показує, що у нас є принаймні доповнення. У цьому випадку позначимо цю асимптотичну нижню межу через . Оскільки нижня і верхня межа збігаються, ми навіть можемо сказати, що - це щільна асимптотична межа, і ми пишемо .п / 2н2/ 4Ω (н2)н2Θ (н2)
Якщо ви хочете дізнатися більше, читайте тут .