Related Articles

# Time Complexity of a Loop when Loop variable “Expands or Shrinks” exponentially

• Difficulty Level : Medium
• Last Updated : 08 May, 2019

For such cases, time complexity of the loop is O(log(log(n))).The following cases analyse different aspects of the problem.

Case 1 :

 `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, …, 2klogk(log(n)). The last term must be less than or equal to n, and we have 2klogk(log(n)) = 2log(n) = n, which completely agrees with the value of our last term. So there are in total logk(log(n)) many iterations, and each iteration takes a constant amount of time to run, therefore the total time complexity is O(log(log(n))).

Case 2 :

 `// 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/k2, n1/k3, …, n1/klogk(log(n)), so there are in total logk(log(n)) iterations and each iteration takes time O(1), so the total time complexity is O(log(log(n))).

Refer below article for analysis of different types of loops.
https://www.geeksforgeeks.org/analysis-of-algorithms-set-4-analysis-of-loops/

This article is contributed by Rishav Raj. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.