aspose file tools*
The moose likes Beginning Java and the fly likes Help me review for exam Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Help me review for exam" Watch "Help me review for exam" New topic
Author

Help me review for exam

Tonks Gabriel
Greenhorn

Joined: Feb 23, 2012
Posts: 15
Can anyone explain to me the difference between:

For each of the following loops with a method call, determine the overall complexity. As above, assume that method f takes constant time, and that method g takes time linear in the value of its parameter.

1. for (j = 0; j < N; j++) f(j);

2. for (j = 0; j < N; j++) g(j);

3. for (j = 0; j < N; j++) g(k);

I understand why number 1 is O(n), but I don't get it why 2 and 3 are O(n^2). Can you explain it to me in a non-mathematical way. Thanks
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3611
    
  14

Hi Tonks,

In the second case, you perform g(0), g(1), g(2), ..., g(N). If g performs in linear time, then the loop will take 0 + 1 + 2 + ... + N to complete, or (N^2)/2. The division by 2 has no bearing on the complexity. The complexity class only considers the degree of the polynomial, in this case N^2.

The third case has a wrong answer. The answer is O(N*k), or O(N) if k remains constant. Since k is a constant, the method call will always perform in constant time.
Tonks Gabriel
Greenhorn

Joined: Feb 23, 2012
Posts: 15
Hi Stephen,

I thought Linear time is O(n)?


Also, how would you determine the big o notation of the following given:

Example:

8n^3+5000n^2, 5. (m + k)(10kn3 + 50kn), or 2^n+1
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3611
    
  14

Yes, linear time is O(n). Why do you ask?

As for your examples, the only thing that matters is the degree (the highest power) of the polynomial.

For your three examples, those would be O(n^3), O(mk(n^3) + (k^2)(n^3)) and O(2^n). The second one can be simplified to O(n^3) if m increases less fast that cubic time, and k increases less fast than power 1.5 time.
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3611
    
  14

Note that your third example is in exponential time, not polynomial time.
 
wood burning stoves
 
subject: Help me review for exam