Bu gibi durumlarda döngünün zaman karmaşıklığı O(log(log(n))'dur). Aşağıdaki durumlar problemin farklı yönlerini analiz eder. Durum 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... 2kkayıtk(günlük(n)). Son terim n'den küçük veya ona eşit olmalı ve elimizde 2 varkkayıtk(günlük(n))= 2günlük(n)= n, bu da son terimimizin değerine tamamen uyuyor. Yani toplam kayıtta vark(log(n)) birçok yineleme ve her yinelemenin çalışması sabit miktarda zaman alır, bu nedenle toplam zaman karmaşıklığı O(log(log(n))). Durum 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= n1/k2N1/k3... N1/kkayıtk(günlük(n))yani toplam kayıtta vark(log(n)) yinelemeler ve her yineleme O(1) zaman alır, dolayısıyla toplam zaman karmaşıklığı O(log(log(n))). Farklı döngü türlerinin analizi için aşağıdaki makaleye bakın. https://www.geeksforgeeks.org/dsa/how-to-analyse-loops-for-complexity-analiz-of-algorithms/ Test Oluştur