За такива случаи времевата сложност на цикъла е O(log(log(n))). Следните случаи анализират различни аспекти на проблема. Случай 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кдневникк(дневник (n)). Последният член трябва да е по-малък или равен на n и имаме 2кдневникк(дневник (n))= 2дневник (n)= n, което напълно съответства на стойността на нашия последен член. Така че има общ дневникк(log(n)) много итерации и всяка итерация отнема постоянно време за изпълнение, следователно общата времева сложност е O(log(log(n))). Случай 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(н1/к)1/к= n1/к2п1/к3... п1/кдневникк(дневник (n))така че има общ дневникк(log(n)) итерации и всяка итерация отнема време O(1), така че общата времева сложност е O(log(log(n))). Вижте статията по-долу за анализ на различни видове цикли. https://www.geeksforgeeks.org/dsa/how-to-analyse-loops-for-complexity-analysis-of-algorithms/ Създаване на тест