У меня есть алгоритм, и мне нужна помощь в поиске сложность его (сжатые возможно верхняя граница)Простой алгоритм сложности
for(int i = 0; i < n/2; i++)
for(int j = 0; j < n/4; j++)
for(int k = 0; k < n; k++)
x++;
Мой анализ является то, что если п не будут разделены на каждый цикл, было бы O(n^3)
. Эта сложность по-прежнему сохраняется, поскольку каждый цикл «for» сокращает каждую операцию до сложности O(log n)
, поскольку она делит n каждый раз, когда цикл выполняется, делая его меньше и меньше (меньше, чем O(n)
).
Я бы сказал, что ответ находится между O(log n)
и O(n^3)
. Не могли бы вы помочь мне получить максимально возможную связь?
'n' никогда не изменяется => сложность' Θ (n * (n/4) * (n/2)) = Θ (n³) ' – fabian