Consider the following algorithm, which takes as input a sequence of n integers a_1, a_2,… , a_n and produces as output a matrix M = {m_(ij)} where m_(ij) is the minimum term in the sequence of integers a_i , a_(i+1),… , a_j for j ≥ i and m_(ij) = 0 otherwise. initialize M so that m_(ij) = a_i if j ≥ i and m_(ij) = 0 otherwise for i := 1 to n for j := i + 1 to n for k := i + 1 to j m_(ij) := min(m_(ij), a_k) return M= {m_(ij)} {m_(ij) is the minimum term of a_i , a_(i+1),… , a_j } a) Show that this algorithm uses O(n^3) comparisons to compute the matrix M. b) Show that this algorithm uses Ω(n^3) comparisons to compute the matrix M. Using this fact and part (a), conclude that the algorithms uses Θ(n^3) comparisons. [Hint: Only consider the cases where i ≤ n∕4 and j ≥ 3n∕4 in the two outer loops in the algorithm.]
Consider the following
sequence of n integers a_1, a_2,… , a_n and produces as output a matrix M = {m_(ij)} where m_(ij) is the minimum term
in the sequence of integers a_i
, a_(i+1),… , a_j for j ≥ i and
m_(ij) = 0 otherwise.
initialize M so that m_(ij) = a_i if j ≥ i and m_(ij) = 0
otherwise
for i := 1 to n
for j := i + 1 to n
for k := i + 1 to j
m_(ij) := min(m_(ij), a_k)
return M= {m_(ij)} {m_(ij) is the minimum term of
a_i
, a_(i+1),… , a_j
}
a) Show that this algorithm uses O(n^3) comparisons to
compute the matrix M.
b) Show that this algorithm uses Ω(n^3) comparisons to
compute the matrix M. Using this fact and part (a),
conclude that the algorithms uses Θ(n^3) comparisons.
[Hint: Only consider the cases where i ≤ n∕4 and
j ≥ 3n∕4 in the two outer loops in the algorithm.]
Trending now
This is a popular solution!
Step by step
Solved in 2 steps