Вероятно мога да разбера част b, ако можете да ми помогнете да направя част a. Гледам този и подобни проблеми цял ден и просто имам проблеми да разбера какво да правя с вложените цикли. За първия цикъл има 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) сравнения.