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

Tutorial01 MH4501

The document is a tutorial for the MH1403 Algorithms and Computing course, focusing on algorithm analysis. It includes questions on finding optimal Big-Oh notations for various functions, analyzing the sum and product of functions, and evaluating the running time of specific Python codes. The tutorial spans multiple questions, each requiring the application of Big-Oh notation principles without detailed explanations.

Uploaded by

Elyssa En Ying
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Tutorial01 MH4501

The document is a tutorial for the MH1403 Algorithms and Computing course, focusing on algorithm analysis. It includes questions on finding optimal Big-Oh notations for various functions, analyzing the sum and product of functions, and evaluating the running time of specific Python codes. The tutorial spans multiple questions, each requiring the application of Big-Oh notation principles without detailed explanations.

Uploaded by

Elyssa En Ying
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

MH1403 Algorithms and Computing

Tutorial 1 Algorithm Analysis


(Week 2, 20.01.2025 – 24.01.2025)

Question 1. Find the optimal Big-Oh notations for the following func-
tions. (You do not need to provide the details of how you obtained the
Big-Oh notations.)
1.1 f (n) = 5n

1.2 f (n) = 2100

1.3 f (n) = 2n

1.4 f (n) = 3n

1.5 f (n) = n3

1.6 f (n) = n

1.7 f (n) = n0.01

1.8 f (n) = 4n3/2

1.9 f (n) = 4log(3n)

1.10 f (n) = 6nlog(n)

1.11 f (n) = nlog4 (n)

1.12 f (n) = 2log10 (n)


n
1.13 f (n) = 22

1.14 f (n) = 5n + n2

1.15 f (n) = 2100 + 5n

1.16 f (n) = 10n0.01 + n0.5

1.17 f (n) = 5n + 6log(n)

1.18 f (n) = 5n + 6nlog(n)

1
Question 2. For this question, you do not need to provide the details of
how you obtained the Big-Oh notations.
2.1 f (n) = O(n3 ), g(n) = O(n3 ), what is the optimal Big-Oh notation of
f (n) + g(n)?
2.2 f (n) = O(n3 ), g(n) = O(n2 ), what is the optimal Big-Oh notation of
f (n) + g(n)?
2.3 f (n) = O(n3 ), g(n) = O(nlog(n)), what is the optimal Big-Oh notation
of f (n) + g(n)?
2.4 f (n) = O(n3 ), g(n) = O(2n ), what is the optimal Big-Oh notation of
f (n) + g(n)?

Question 3. For this question, you do not need to provide the details of
how you obtained the Big-Oh notations.
3.1 f (n) = O(n3 ), g(n) = O(n2 ), what is the optimal Big-Oh notation of
f (n)g(n)?
3.2 f (n) = O(n3 ), g(n) = O(2n ), what is the optimal Big-Oh notation of
f (n)g(n)?

Question 4. Show that T (n) = a0 + a1 n + a2 n2 + a3 n3 (a3 is a positive


number) is O(n3 ) using the formal definition of the Big-Oh notation.

Question 5. What are the optimal Big-Oh notations of the running time
of the following Python codes?

5.1 s = 0
for i in range(n):
s = s+i

Note that in Python, “for i in range(n)” means “for i from 0 to n-1, the
increment of i is 1 after each iteration”.
5.2 p = 1
for i in range(n):
p = p*2

5.3 p = 1
for i in range(n**2):
p = p * 3

Note that in Python, n**2 means n2 , n**7 means n7 .

2
5.4 s = 0
for i in range(2*n):
for j in range(i):
s = s + i

Question 6. What are the optimal Big-Oh notations of the running time
of the following Python codes?

6.1 i = 0
j = 0
s = 0
for i in range(n):
j = 0
while j < n:
j = j + 1
s = s + 3

6.2 i = 0
j = 0
s = 0
for i in range(n):
while j < n:
j = j + 1
s = s + 3

You might also like