Cho biết độ phức tạp của đoạn mã giả sau dùng ký hiệu big-O.s = 0for (i = 1; i <= n; i *= 3)s = s + a[i]a.O( n )b.O(n^2)c.O(logn)d.O(nlogn)Clear my choice
Question
Cho biết độ phức tạp của đoạn mã giả sau dùng ký hiệu big-O.
s = 0
for (i = 1; i <= n; i *= 3)
s = s + a[i]
a. O( n )
b. O(n^2)
c. O(logn)
d. O(nlogn)
Clear my choice
Solution
1. Break Down the Problem
We need to analyze the pseudocode provided to determine its time complexity using Big-O notation. The pseudocode is structured as follows:
s = 0
for (i = 1; i <= n; i *= 3)
s = s + a[i]
2. Relevant Concepts
The time complexity of a loop can be analyzed by examining how the loop variable changes over each iteration and how many times the loop will execute in relation to the input size .
3. Analysis and Detail
- The loop starts with .
- In each iteration, is multiplied by 3 (
i *= 3
). - The loop continues until exceeds .
To find out how many iterations the loop runs, we can express in terms of :
- In the first iteration:
- In the second iteration:
- In the third iteration:
- In the fourth iteration:
- And so on...
We need to determine when becomes greater than :
Taking the logarithm base 3 of both sides, we get:
Thus, the number of iterations can be approximated by:
4. Verify and Summarize
The loop runs logarithmically with respect to since it increases in powers of 3. Therefore, the time complexity of this pseudocode is .
Final Answer
The time complexity of the given pseudocode is c. O(log n).
Similar Questions
Cho biết độ phức tạp của đoạn mã giả sau dùng ký hiệu big-O.int F(int n)if (n <= 2)return 1elsereturn F(n − 2) * F(n − 2)a.O(2^(n/2))b.O(2^n)c.O(n^2)d.O( n )
A growth function that is O(n) is ____________________ A. constant B. logarithmic C. linear D. quadratic E. exponential
Hôn nhân tiến bộ là:a.Không chấp nhận sự áp đặt của cha mẹb.Hôn nhân xuất phát từ tình yêuc.Tự do trong việc lựa chọn người kết hônd.Bao gồm các đáp án
Luật phòng chống tác hại rượu bia quy định về mức xử phạt tối đa đối với việc vận chuyển rượu, bia có nồng độ cồn cao hơn bao nhiêu?a.0,08%b.0,03%c.0,1%d.0,05%
Time complexities of three algorithms are given. Which should execute the slowest for largevalues of N?(A) O(N^0.5)#(B) O(n)(C) O(logN)(D) O(log2n)(E)O(NlogN
Upgrade your grade with Knowee
Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.