0% found this document useful (0 votes)
13 views3 pages

Time and Complexity Based Practise Questions

The document presents a series of programming questions focused on time and space complexity analysis of various code snippets. It includes explanations for the complexities of different algorithms, emphasizing asymptotic efficiency and providing correct answers for each question. The key takeaways include understanding how to derive time complexities from nested loops and the implications of algorithm efficiency for large inputs.

Uploaded by

theshrutisharmaa
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)
13 views3 pages

Time and Complexity Based Practise Questions

The document presents a series of programming questions focused on time and space complexity analysis of various code snippets. It includes explanations for the complexities of different algorithms, emphasizing asymptotic efficiency and providing correct answers for each question. The key takeaways include understanding how to derive time complexities from nested loops and the implications of algorithm efficiency for large inputs.

Uploaded by

theshrutisharmaa
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/ 3

Time and Complexity Based Practise Questions

1. What is the time, and space complexity of the following code:

int a = 0, b = 0;

for (i = 0; i < N; i++) {

a = a + rand();

for (j = 0; j < M; j++) {

b = b + rand();

Options:

O(N * M) time, O(1) space

O(N + M) time, O(N + M) space

O(N + M) time, O(1) space

O(N * M) time, O(N + M) space

Output:

3. O(N + M) time, O(1) space

Explanation: The first loop is O(N) and the second loop is O(M). Since N and M are independent
variables, so we can’t say which one is the leading term. Therefore Time complexity of the given
problem will be O(N+M).

Since variables size does not depend on the size of the input, therefore Space Complexity will
be constant or O(1)

2. What is the time complexity of the following code:

int a = 0;

for (i = 0; i < N; i++) {

for (j = N; j > i; j--) {

a = a + i + j;

Options:

O(N)
O(N*log(N))

O(N * Sqrt(N))

O(N*N)

Output:

4. O(N*N)

Explanation:

The above code runs total no of times

= N + (N – 1) + (N – 2) + … 1 + 0

= N * (N + 1) / 2

= 1/2 * N^2 + 1/2 * N

O(N^2) times.

3. What is the time complexity of the following code:

int i, j, k = 0;

for (i = n / 2; i <= n; i++) {

for (j = 2; j <= n; j = j * 2) {

k = k + n / 2;

Options:

O(n)

O(N log N)

O(n^2)

O(n^2Logn)

Output:

2. O(nLogn)

Explanation: If you notice, j keeps doubling till it is less than or equal to n. Several times, we can
double a number till it is less than n would be log(n).

4. What does it mean when we say that an algorithm X is asymptotically more efficient than Y?
Options:

X will always be a better choice for small inputs

X will always be a better choice for large inputs

Y will always be a better choice for small inputs

X will always be a better choice for all inputs

Output:

2. X will always be a better choice for large inputs

Explanation: In asymptotic analysis, we consider the growth of the algorithm in terms of input
size. An algorithm X is said to be asymptotically better than Y if X takes smaller time than y for all
input sizes n larger than a value n0 where n0 > 0.

5. What is the time complexity of the following code:

int a = 0, i = N;

while (i > 0) {

a += i;

i /= 2;

Options:

O(N)

O(Sqrt(N))

O(N / 2)

O(log N)

Output:

4. O(log N)

Explanation: We have to find the smallest x such that ‘(N / 2^x )< 1 OR 2^x > N’

x = log(N)

You might also like