$24
Question 1. In pseudo code, describe Algorithm ComputeAverage(A,n) that returns, for an input of an array A with n elements, the average value of these n elements.
Question 2 & 3. Consider the following algorithm described in pseudo code.
Algorithm Compute(n)
Input: positive integer n
Output: sum of all integers from 1 to n
value ← 0
for i ← 0 to n-1 do
value ← value + (i + 1)
end
return value
Determine the number of primitive operations of Algorithm Compute(n), counting assignments, comparisons, and returns only.
In pseudo code, describe Algorithm RecursiveCompute(n), an algorithm that outputs the sum of all integers from 1 to n as recursive algorithm.
Determine the number of primitive operations of Algorithm RecursiveCompute(n), counting assignments, comparisons, and returns only.
In pseudo code, describe Algorithm ComputeFast(n), an algorithm that outputs the sum of all integers from 1 to n in constant time.
Question 4. For the following, lg n = log2 n
Order the following functions by their growth rate (big-Oh).
f
(n) = lg n
f2(n) = n3 + 882
f
(n) = 17n +
n
0
1
f4
(n) = n lg n3
f5(n) = n3 lg n
f6(n) = 28n2 + 3
Which of the following functions are big-theta of one another?
g0
(n) = 17 · 2lg n
g1(n) = 1032
g2(n) = n lg n
1
g5(n) = 881n
g6(n) = n2 + 13
g4(n) = n
+ 81
2
f3(n) = 112 · 3n
f7(n) = 1n
g3(n) = n lg n + n
g7(n) = 1n
.
Question 5. Consider the following algorithm described in pseudo code.
. Algorithm arrayFind( , )
Input: An element and an -element array
Output: The index such that = [ ] or −1 if no element of is equal to .
←0
while < do
if = [ ] then return
else ← +1
end
return −1
Counting assignments, comparisons, and returns only, calculate the worst-case, ( ), and best-case, ( ), running times of Algorithm arrayFind.