0% found this document useful (0 votes)
5 views

Tutorial01 Analysis of Algorithms

Uploaded by

d6xywyqb5y
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Tutorial01 Analysis of Algorithms

Uploaded by

d6xywyqb5y
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

CSI2110 Tutorial

Analysis of Algorithms
Lucia Moura

Most exercises are taken from our textbook:


Goodrich, Tamassia and Goldwasser, Data structures and Algorithms in Java, 6 th edition
Exercises:
1) Determine the (worst-case) complexity of unique1 and unique2 using the
big-Oh notation; which algorithm is more efficient?

2) Determine the big-Oh of the pieces of code: example1, …, example5


(textbook exercises: R-4.9, R.10, R.11,R.12,R.13)

3) The number of operations executed by Algorithms A and B is 40n2 and 2n3,


respectively. Determine n0 such that A is better than B for all n>=n0.

4) Prove that if d(n) is O(f(n)) and e(n) is O(g(n)), then d(n)+e(n) is O(f(n)
+g(n)).
1.1) Big-Oh of unique1 ?
1.2 Big-Oh of unique2?
1) Determine the big-Oh of unique1 and unique2; which algorithm is
more efficient?
Example 1 and Example 2
Example 3 and Example 4
Example 5
3) The number of operations executed by
Algorithms A and B is 40n2 and 2n3,
respectively. Determine n0 such that A is
better than B for all n>=n0.
4) Prove that if d(n) is O(f(n)) and e(n) is O(g(n)),
then d(n)+e(n) is O(f(n)+g(n)).
Extras exercises:

• https://www.geeksforgeeks.org/algorithms-gq/analysis-of-algorithms-
gq/
• Suggested questions: Questions: 6, 8, 9, 10;
• Tricky challenge: Question 5
Appendix:
Big-Oh, Big-Omega, Big-Theta
Big-Oh (upper bound)
• given two functions f(n) and g(n), we say that
f(n) is O(g(n))
if and only if there are positive constants
c and n0 such that
f(n)  c g(n) for all n  n0

c • g(n)

f(n)

n0
n 13
big-Omega. (lower bound)

Definition: f(n) is (g(n)) (f(n) is big-Omega of g(n))


if there exist c > 0 and n0  1 such that
f(n)  c • g(n) for all n  n0

f(n)
c • g(n)

n0
n

Theorem: f(n) is (g(n)) iff g(n) is O(f(n))


14
big-Theta
Definition: f(n) is big-Theta of g(n)
 f(n) is (g(n)) if there are constants c’ > 0 and c’’ > 0 and an
integer constant n0  1 such that
c’g(n)  f(n)  c’’g(n), for all n  n0

Theorem.
f(n) is (g(n)) <===> if f(n)  O(g(n)) AND g(n)  O(f(n))

Theorem.
f(n) is (g(n)) <===> if f(n)  O(g(n)) AND f(n)  (g(n))

15

You might also like