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

Multiple Choice Questions Related To Testing Knowledge About Time and Space Complexity of A Program

The document contains a set of 20 multiple choice questions related to time and space complexity analysis of programs. It provides the questions, possible answers for each question, and asks for feedback on the questions. Other programmers have responded with their answers to the questions and some minor clarifications or questions about specific questions. The admin has confirmed that the answers provided are correct.

Uploaded by

Ibrahim Anis
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
219 views

Multiple Choice Questions Related To Testing Knowledge About Time and Space Complexity of A Program

The document contains a set of 20 multiple choice questions related to time and space complexity analysis of programs. It provides the questions, possible answers for each question, and asks for feedback on the questions. Other programmers have responded with their answers to the questions and some minor clarifications or questions about specific questions. The admin has confirmed that the answers provided are correct.

Uploaded by

Ibrahim Anis
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

First, make sure you have nished all the warm up problems (not the optional ones).

If you
are still doing those then message us ASAP.

Notes about Week 1: If you are still doing pre x sum problems, that is completely ne and you
can also refer to this weeks material in parallel. If you found those problems too easy or too
di cult or just want more practice with pre x sums, refer to the optional ones.
(do problems 1,4 if you want a challenge; do problems 2,3,INOI(1) if you want easier ones/more
practice).

Everyone here is on di erent levels, so let us know if the problems we’re asking you to do are
too easy or too di cult and we will change them for you accordingly.

A better resource for complexity https://usaco guide vercel app/bronze/time comp

Multiple Choice Questions Related To Testing


Knowledge about Time and Space Complexity Of A
Program
tutorial

admin Jan '18

Hi fellow programmers,

We are trying to create a multiple choice quiz for space and time complexity of the programs
related questions. Here are a set of 20 questions we collected. Please feel free to give your
answers to these questions. Any feedback about the set of questions. Please also feel
propose to any more set of MCQs that you would like to add here, there might be some
interesting questions that you might have encountered during the programming and would
like to add here

Q1.
Average case time complexity of quicksort?

A. O(n)
B. O(n log n)
C. O(n2 )
D. O(n3 )

Q2.
Worst case time complexity of quicksort?
A. O(n)
B. O(n log n)
C. O(n2 )
D. O(n3 )

Q3.
Time complexity of binary search?

A. O(1)
B. O(log n)
2
C. O((log n) )
D. O(n)

Q4.

def f()
ans = 0
for i = 1 to n:
for j = 1 to log(i):
ans += 1
print(ans)

Time Complexity of this program:

A. O(n)
B. O(n log n)
C. O(n2 )
D. O(n3 )

Q5.

def f():
a = 0
for i = 1 to n:
a += i;
b = 0
for i = 1 to m:
b += i;

Time Complexity of this program:

A. O(n)
B. O(m)
C. O(n + m)
D. O(n ∗ m)

Q6.

def f():
a = 0
for i = 1 to n:
a += random.randint();
b = 0
for j = 1 to m:
b += random.randint();

Time Complexity of this program:

A. O(n)
B. O(m)
C. O(n + m)
D. O(n ∗ m)

Q7.

def f():
int a[n][n]
// Finding sum of elements of a matrix that are above or on the dia
sum = 0
for i = 1 to n:
for j = i to n:
sum += a[i][j]
print(sum)

Time Complexity of this program:

A. O(n)
B. O(n log n)
C. O(n2 )
D. O(n3 )

Q8.

def f():
int a[n][n]
sum = 0
// Finding sum of elements of a matrix that are strictly above the
for i = 1 to n:
for j = i to n:
sum += a[i][j]
print(sum)

for i = 1 to n:
sum -= a[i][i]

Time Complexity of this program:

A. O(n)
B. O(n log n)
C. O(n2 )
D. O(n3 )

Q9.

def f():
ans = 0
for i = 1 to n:
for j = n to i:
ans += (i * j)
print(ans)

Time Complexity of this program:

A. O(n)
B. O(n log n)
C. O(n2 )
D. O(n3 )

Q10.

def f():
int a[N + 1][M + 1][K + 1]
sum = 0
for i = 1 to N:
for j = i to M:
for k = j to K:
sum += a[i][j]
print(sum)

Time Complexity of this program:


A. O(N + M + K)
B. O(N ∗ M ∗ K)
C. O(N ∗ M + K)
D. O(N + M ∗ K)

Q11.

def f(n):
ans = 0
while (n > 0):
ans += n
n /= 2;
print(ans)

Time Complexity of this program:

A. O(log n)
B. O(n)
B. O(n log n)
C. O(n2 )

Q12.

// Find the sum of digits of a number in its decimal representation.


def f(n):
ans = 0
while (n > 0):
ans += n % 10
n /= 10;
print(ans)

Time Complexity of this program:

A. O(log2 n)
B. O(log3 n)
C. O(log10 n)
D. O(n)

Q13.

def f():
ans = 0
for (i = n; i >= 1; i /= 2):
for j = m to i:
ans += (i * j)
print(ans)

Time Complexity of this program:

A. O(n + m)
B. O(n ∗ m)
C. O(m log n)
D. O(n log m)

Q14.

def f():
ans = 0
for (i = n; i >= 1; i /= 2):
for (j = 1; j <= m; j *= 2)
ans += (i * j)
print(ans)

Time Complexity of this program:

A. O(n ∗ m)
B. O(log m log n)
C. O(m log n)
D. O(n log m)

Q15.

// Finding gcd of two numbers a, b.


def gcd(a, b):
if (a < b) swap(a, b)
if (b == 0) return a;
else return gcd(b, a % b)

Time Complexity of this program:

Let n = max{a, b}

A. O(1)
B. O(log n)
C. O(n)
D. O(n2

Q16.
// Binary searching in sorted array for finding whether an element exis
def exists(a, x):
// Check whether the number x exists in the array a.
lo = 0, hi = len(a) - 1
while (lo <= hi):
mid = (lo + hi) / 2
if (a[mid] == x): return x;
else if (a[mid] > x): hi = mid - 1;
else lo = mid + 1;
return -1; // Not found.

Time Complexity of this program:

Let n = len(a)

A. O(1)
B. O(log n)
C. O(n)
D. O(n2

Q17.
// Given a sorted array a, nd the number of occurrence of number x in the entire array.

def count_occurrences(a, x, lo, hi):


if lo > hi: return 0
mid = (lo + hi) / 2;
if a[mid] < x: return count_occurrences(a, x, mid + 1, hi)
if a[mid] > x: return count_occurrences(a, x, lo, mid - 1)
return 1 + count_occurrences(a, x, lo, mid - 1) + count_occurrences

// in the main function, we call it as


count_occurrences(a, x, 0, len(a) - 1)

Time Complexity of this program:

Let n = len(a)

A. O(1)
B. O(log n)
C. O(n)
D. O(n2

Q18.
// Finding fibonacci numbers.
def f(n):
if n == 0 or n == 1: return 1
return f(n - 1) + f(n - 2)

Time Complexity of this program:

A. O(log n)
B. O(n)
C. O(n2 )
D. O(2n )

Q19.

Create array memo[n + 1]

// Finding fibonacci numbers with memoization.


def f(n):
if memo[n] != -1: return memo[n]
if n == 0 or n == 1: ans = 1
else: ans = f(n - 1) + f(n - 2)
memo[n] = ans
return ans

// In the main function.


Fill the memo array with all values equal to -1.
ans = f(n)

Time Complexity of this program:

A. O(log n)
B. O(n)
C. O(n2 )
D. O(2n )

Q20.

def f(a):
n = len(a)
j = 0
for i = 0 to n - 1:
while (j < n and a[i] < a[j]):
j += 1

Time Complexity of this program:


A. O(log n)
B. O(n)
C. O(n log n)
D. O(n2 )

Q21.

def f():
ans = 0
for i = 1 to n:
for j = i; j <= n; j += i:
ans += 1
print(ans)

Time Complexity of this program:

A. O(log n)
B. O(n)
C. O(n log n)
D. O(n2 )

[OFFICIAL] Live DSA Learning Session 1 - Contest 1 - Part 1


Hackerrank problem ("Maximum Element")

benritmico Jan '18

Wouldn’t question 5 depend on the bigger number(n or m)? In that case it could be either a
or b, right?

taran_1407 Jan '18

1B
2C
3B
4B
5C
6D
7C
8C
9C
10 B
11 A
12 C
13 C
14 B
15 B (No idea, though i guess this)
16 B
17 B
18 D
19 B
20 B
21 C

akash_321 Feb '18

In question 17 if all elements of a are x wouldn’t the complexity be O(n).


@taran_1407 @admin @vijju123 anyone?

kunalk0214 Mar '18

1b
2c
3b
4b
5c
6d
7c
8c
9c
10 b
11 a
12 c
13 c
14 b
15 b
16 b
17 b
18 d
19 b
20 b
21 a

mnjn25 Mar '18

Please explain the soln. for Q.20.

john_smith_3 Mar '18

Question 13:
If n is large, and m is small, then the innermost statement is executed n + n/2 + n/4 +
… times.
So the problem is at least .

If n and m are large, then the innermost statement is executed roughly m \log n times.

So I believe the problem as a whole is {\scr O}(n+m\log n).

The only choice available that is big enough is B: {\scr O}(n \times m).

Question 21:

Has no options C, and two options D. The correct choice is the rst option D!
admin Jan '18

As both n and m are the input parameters of the function. So, we should give O(n + m) as
time complexity.

admin Jan '18

kudos, I think all your answers are correct

taran_1407 Jan '18

Really?
I guessed 2nd and 15th.

admin Jan '18

yes, they are right too.

You might also like