Ну, внешний цикл, очевидно, будет выполнять n
итераций.
То, что делает внутренний цикл, в основном умножает j
на 2
, тогда как оно меньше n
, поэтому для первой итерации j=1
оно умножит его 1 + log(n)
в худшем случае. Для более общего случая j=i
, где 1 <= i < n
вам потребуется 1 + log(n)-log(i)
раз (поскольку вы начинаете не с 1, а с i
). 1 + log(n)-log(i)= 1 + log(n/i)
.
Таким образом, в целом у вас есть O(sum (1 + log(n/i)) from 1 to n)
, который в конечном итоге равен , равному O(n + c*log(n))
, где c
- некоторый постоянный коэффициент, и, используя правила big-O, нас не волнует log(n)
часть, потому что у нас есть n
часть, так что это просто O(n)
.