...
/Solution: Big O of Nested Loop with Multiplication
Solution: Big O of Nested Loop with Multiplication
This review provides a detailed analysis of the different ways to solve the Big O of Nested Loop with Multiplication.
We'll cover the following...
Given Code #
class NestedLoop {public static void main(String[] args) {int n = 10; // O(time complexity of the called function)int sum = 0; //O(1)double pie = 3.14; //O(1)int var = 1;while(var < n) { // O(log n)System.out.println("Pie: " + pie); // O(log n)for (int j = 0; j < var; j++) { // 2nsum++; // (2n-1)}var *= 2; // O(log n)} //end of while loopSystem.out.println("Sum: " + sum); //O(1)} //end of main} //end of class
Explanation
The answer is . Have a look at the slides below for an in-depth explanation of the answer.
Time Complexity
The above slides give a detailed, step-by-step analysis of the code. Here, we provide a more summarized version.
The outer loop here runs times. In the first iteration of the outer loop, the body of the inner loop runs once. In the second iteration, it runs twice, and so on. The number of executions of the body of the inner loop increases in powers of 2. So, if is the number of iterations of the outer loop, the body of the inner loop runs a total of times. This geometric series sums to . The inner loop condition requires that in the last time the inner loop runs, it runs at most times. This requires ...