logo

Временска сложеност петље када се променљива петље „проширује или смањује“ експоненцијално

За такве случајеве временска сложеност петље је О(лог(лог(н))). Следећи случајеви анализирају различите аспекте проблема. Случај 1: CPP
for (int i = 2; i <=n; i = pow(i k))  {   // some O(1) expressions or statements } 
In this case i takes values 2 2к(2к)к= 2к2(2к2)к= 2к3... 2клогк(лог(н)). Последњи члан мора бити мањи или једнак н и имамо 2клогк(лог(н))= 2лог(н)= н што се у потпуности слаже са вредношћу нашег последњег члана. Дакле, постоји укупан дневникк(лог(н)) много итерација и свакој итерацији је потребно константно време да се покрене, стога је укупна временска сложеност О(лог(лог(н))). Случај 2: CPP
// func() is any constant root function for (int i = n; i > 1; i = func(i))  {   // some O(1) expressions or statements } 
In this case i takes values n n1/к1/к)1/к= н1/к2н1/к3... н1/клогк(лог(н))тако да постоје у укупном дневникук(лог(н)) итерација и свака итерација захтева време О(1) тако да је укупна временска сложеност О(лог(лог(н))). Погледајте доњи чланак за анализу различитих типова петљи. хттпс://ввв.геексфоргеекс.орг/дса/хов-то-аналисе-лоопс-фор-цомплекити-аналисис-оф-алгоритхмс/ Креирај квиз