Другой способ подойти к этому - переписать код следующим образом:
for x= 1 to n
for i = 1 to n
count++
for i = 2 to n
count++
for i = 3 to n // considering 1 to 3 => [1, 3]
count++
Тогда мы можем утверждать, что временная сложность всех внутренних циклов равна O(n)
, то есть O(n) + O(n) + O(n)
= O(n)
.
Сложность по времени внешнего цикла также равна O(n)
, и для каждой итерации внешнего цикла у нас есть O(n)
итераций во внутреннем цикле, что делает его O(n^2)
.
Кроме того, Пространственная сложность равна O(1)
, поскольку существует только несколько объявлений переменных (объявлены следующие переменные: count
, i
, j
; также вы забыли объявить переменную в самом внешнем цикле), что не зависит от какого-либо внешнего параметра, т. е. сложность пространства остается неизменной независимо от размера ввода.