Are These Statements True for Big O and Little o Notation?

  • Thread starter hotcommodity
  • Start date
  • Tags
    Notation
In summary: For d), it's still possible for T_1 to be larger than T_2, but that doesn't mean that O(T_1) > O(T_2).
  • #1
hotcommodity
436
0

Homework Statement



1) Suppose T1(N) = O(f(N)) and T2(N) = O(f(N)). Which of the following are true?

a) T1(N) + T2(N) = O(f(N))
b) T1(N) - T2(N) = o(f(N))
c) [tex] \frac{T_1(N)}{T_2(N)} = O(1) [/tex]
d) T1(N) = O(T2(N))

2) Find two functions f(N) and g(N) such that neither f(N) = O(g(N)) nor g(N) = O(f(N)).

Just for clarity, I'm having to use these functions to analyze the running times of programs, with big O being the worst case running time.

Homework Equations



None.

The Attempt at a Solution



For problem 1, I know that letter "a" is true, but I'm having trouble with the rest. For letter "b", I know that T1(N) - T2(N) implies f(N) - f(N), which would be zero. So I believe letter "b" is false, because it's possible that T1(N) > T2(N). For part "c", if T2(N) is much smaller than T1(N), then the division would result in something much larger than 1, so I believe it to be fasle. Plus, I read that constants don't count in big O notation, so wouldn't O(1) just be O(0)? For part "d", T1(N) could be larger than T2(N) by the initial big O definitions, and thus I believe this to be false.

For problem 2, I don't even know where to begin, because the problem implies that I must find two functions such that one is not greater than the other, and they cannot equal each other either, right?

Any help is appreciated.

Edit: I changed my thoughts on part "b".
 
Last edited:
Physics news on Phys.org
  • #2
Well, O(p) just means "within an error of a constant multiple of p".

So it may help to write [tex]T_1 (N) = C_1 \cdot f(n), T_2 (N) = C_2 \cdot f(n)[/tex].

That way, for a) the replacements make it become [tex](C_1 +C_2)\cdot f(n)[/tex]. And Since the new coefficient is just another constant, a) is also O(f(n)).
 
  • #3
Thanks for the reply. I've already figured out that letter "a" is true, but it's the rest that I'm having trouble with. I'm still stuck...
 
  • #4
Ok Let's think about this. For B) What if T_1 and T_2 are equal? They need not necessarily be, but let's take the case they are. Is it still O(f(n))?

For c) From your attempt - as long as T_2 is only smaller than T_1 by a constant, then you get perhaps a big number but still a constant! And O(1) just means a constant! If T_2 is smaller than T_1 by so much that the number is infinitely large, then this contradicts that both are O( f(n) ).
 

FAQ: Are These Statements True for Big O and Little o Notation?

What is the difference between Big O and little o notation?

Big O notation is used to describe the upper bound or worst-case scenario for the time or space complexity of an algorithm. It represents the maximum amount of time or space that an algorithm will take to run as the input size increases. On the other hand, little o notation represents a tighter upper bound, indicating that the algorithm will run significantly faster than the input size increases.

How is Big O notation calculated?

Big O notation is calculated by analyzing the number of operations an algorithm performs as the input size increases. The time complexity is represented by the highest order term in the algorithm's runtime expression, ignoring any constants or lower order terms. For example, if an algorithm has a runtime of O(n^2 + 5n + 10), the time complexity would be O(n^2).

Can Big O notation be used to compare algorithms with different input sizes?

Yes, Big O notation can be used to compare algorithms with different input sizes. It represents the growth rate of an algorithm, regardless of the specific input size. This allows for a general comparison of the efficiency of algorithms.

What is the significance of Big O notation in computer science?

Big O notation is important in computer science as it allows for the analysis and comparison of algorithms in terms of time and space complexity. This helps in determining the most efficient algorithm for a given problem and in predicting how an algorithm will perform as the input size increases.

Are there any limitations of Big O notation?

While Big O notation is useful in analyzing and comparing algorithms, it has some limitations. It only considers the worst-case scenario and ignores the best-case and average-case scenarios. It also does not take into account the specifics of the hardware or implementation of an algorithm, which can also affect its performance. Therefore, it should be used as a general guide rather than an exact measurement of an algorithm's efficiency.

Back
Top