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

Chap01 Problems

This document contains 13 problems related to analyzing the time complexity of algorithms using Big-O notation. Some of the problems ask students to determine the order of growth of specific functions, find the time complexity of algorithms, and explain concepts like whether certain functions are O(n) or whether statements about time complexity bounds are meaningful. The document provides examples of algorithms and functions for students to analyze and practice applying Big-O notation to determine asymptotic time complexity.

Uploaded by

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

Chap01 Problems

This document contains 13 problems related to analyzing the time complexity of algorithms using Big-O notation. Some of the problems ask students to determine the order of growth of specific functions, find the time complexity of algorithms, and explain concepts like whether certain functions are O(n) or whether statements about time complexity bounds are meaningful. The document provides examples of algorithms and functions for students to analyze and practice applying Big-O notation to determine asymptotic time complexity.

Uploaded by

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

Course: Data Structures & Algorithms

Class: 22CLC01/22CLC07

CHAPTER 1 – PROBLEMS
Problem 1. For each of the following algorithms, indicate (i) a natural size metric for its
inputs, (ii) its basic operation, and (iii) whether the basic operation count can be different
for inputs of the same size:
a. computing the sum of n numbers
b. computing 𝑛!
c. finding the largest element in a list of n numbers
d. Euclid’s algorithm to find the GCD of two integers.

Problem 2. Calculate the number of all assignment and comparison operations of the
following algorithms, then show their order of growth in term of O-notation:
a. for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
b[i][j] += c;

b. for (i = 0; i < n; i++)


if (a[i] == k)
return 1;
return 0;

c. for (i = 0; i < n; i++)


for (j = i+1; j < n; j++)
b[i][j] -= c;

Problem 3. For each of the following pairs of functions, indicate whether the first
function of each of the following pairs has a lower, same, or higher order of growth (to
within a constant multiple) than the second function.
a. 𝑛(𝑛 + 1) and 2000𝑛2
b. 100𝑛2 and 0.01𝑛3
c. log 2 𝑛 and ln 𝑛
d. log 2 2 𝑛 and log 2 𝑛2
e. 2𝑛−1and 2𝑛
f. (𝑛 − 1)! and 𝑛!

Problem 4. List the following functions according to their order of growth from the
lowest to the highest:
(𝑛 − 2)!, 5 lg(𝑛 + 100)10 , 22𝑛 , 0.001𝑛4 + 3𝑛3 + 1, ln 2 𝑛, 3√𝑛, 3𝑛

𝑛3
Problem 5. Express the function 1000 − 100𝑛2 − 100𝑛 + 3 in terms of O-notation.

Lecturer: Nguyễn Hải Minh – University of Science HCM city – [email protected]


1
Problem 6. Explain why the statement, “The running time of algorithm 𝐴 is at least
𝑂(𝑛2 ),” is meaningless.

Problem 7. Show that :


a. 𝑓(𝑥) = 4𝑥 2 − 5𝑥 + 3 ∈ O(𝑥 2 )
b. 𝑓(𝑥) = (𝑥 + 5) 𝑙𝑜𝑔2(3𝑥 2 + 7) ∈ O(𝑥 𝑙𝑜𝑔2 𝑥)
c. 𝑓(𝑥) = (𝑥 2 + 5 𝑙𝑜𝑔2 𝑥)/(2𝑥 + 1) ∈ O(𝑥)

Problem 8. Are the following functions O(x)?


a. 𝑓(𝑥) = 10
b. 𝑓(𝑥) = 3𝑥 + 7
c. 𝑓(𝑥) = 2𝑥 2 + 2

Problem 9. Describe the running time of the following function using O-notation:
1 1 1
𝑆 = 1+ + +⋯+
2 6 𝑛!

Problem 10. Find g(n) of the following f(n) so that f(n)∈ O(g(n))).
a. 𝑓(𝑛) = (2 + 𝑛) ∗ (3 + log2 𝑛)
𝑛
b. 𝑓(𝑛) = 11 ∗ log2 𝑛 + 2 – 3542
c. 𝑓(𝑛) = 𝑛 ∗ (3 + 𝑛) – 7𝑛
d. 𝑓(𝑛) = log2 (𝑛2 ) + 𝑛

Problem 11. Determine 𝑂(𝑔(𝑛)) of the following functions:

a. 𝑓(𝑛) = 10
b. 𝑓(𝑛) = 5𝑛 + 3
c. 𝑓(𝑛) = 10𝑛2 – 3𝑛 + 20
d. 𝑓(𝑛) = log 𝑛 + 100
e. 𝑓(𝑛) = 𝑛 𝑙𝑜𝑔 𝑛 + 𝑙𝑜𝑔 𝑛 + 5

Problem 12. Which one is correct? Explain your answer.

a. 2𝑛+1 = 𝑂(2𝑛 ) ?
b. 22𝑛 = 𝑂(2𝑛 ) ?

Problem 13. Write the algorithms to solve the following problems using C++ and
recursion. Find the Big-O of your algorithms.
a. Find the maximum of an array of n integers.
b. Calculate the factorial of an integer n.
c. Calculate the sum of n integers.
d. Check if an array of n elements is symmetric or not.
(Example of a symmetric array: < 12, 4, 3, 4, 12 >, < 5, 19, 19, 5 >)

Lecturer: Nguyễn Hải Minh – University of Science HCM city – [email protected]


2

You might also like