Я, вероятно, смогу понять часть б, если вы поможете мне сделать часть а. Я весь день смотрю на эту и подобные проблемы, и у меня просто проблемы с пониманием того, что делать с вложенными циклами. Для первого цикла n итераций, для второго n-1, для третьего n-1. Правильно ли я об этом думаю?
Рассмотрим следующий алгоритм,
который принимает на вход последовательность из n целых чисел a1, a2, ..., an
и выдает на выходе матрицу M = {mij}
, где mij — минимальный член< br> в последовательности целых чисел ai, a + 1, ..., aj для j >= i и mij = 0 в противном случае.
инициализировать M так, чтобы mij = ai, если j >= i и mij = 0
for i:=1 to n do
for j:=i+1 to n do
for k:=i+1 to j do
m[i][j] := min(m[i][j], a[k])
end
end
end
return M = {m[i][j]}
(a) Покажите, что этот алгоритм использует сравнения Big-O(n^3) для вычисления матрицы M.
(b) Покажите, что этот алгоритм использует сравнения Big-Omega(n^3) для вычисления матрицы M.
Используя эту грань и часть (a), сделайте вывод, что алгоритм использует сравнения Big-theta(n^3).