W takich przypadkach złożoność czasowa pętli wynosi O(log(log(n))). Poniższe przypadki analizują różne aspekty problemu. Przypadek 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 2k(2k)k= 2k2(2k2)k= 2k3... 2kdziennikk(log(n)). Ostatni wyraz musi być mniejszy lub równy n i mamy 2kdziennikk(log(n))= 2log(n)= n, co całkowicie zgadza się z wartością naszego ostatniego wyrazu. Więc są w sumie logk(log(n)) wiele iteracji, a każda iteracja zajmuje stałą ilość czasu, dlatego całkowita złożoność czasowa wynosi O(log(log(n))). Przypadek 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/k(N1/k)1/k= rz1/k2N1/k3... N1/kdziennikk(log(n))więc są w sumie logk(log(n)) iteracji i każda iteracja zajmuje czas O(1), więc całkowita złożoność czasowa wynosi O(log(log(n))). Poniższy artykuł zawiera analizę różnych typów pętli. https://www.geeksforgeeks.org/dsa/how-to-analyse-loops-for-complexity-analytic-of-algorithms/ Utwórz quiz