Очевидно, что внешний цикл равен O (log 2 ( n )), так как i удваивается с каждой итерацией от 2 до n эксклюзив. Итак:
2 x <<em> n
⇔ log 2 (2 x ) 2 ( n )
10 x 2 ( n )
Таким образом, требуется не более log 2 ( n ) итераций внешнего цикла до тех пор, пока i < n
больше не будет выполнено, поэтому O (log ( n * 1045) *)).
Внутренняя часть немного хитрая, поскольку текущее значение i внешнего цикла используется для инициализации j внутреннего цикла. Кроме того, j умножается на себя (т. Е. j 2 ) с каждой итерацией. Итак:
j 2 x <<em> m
⇔ log j ( j 2 x ) J ( м )
⇔ 2 x j ( m )
⇔ log 2 (2 x ) 2 (log j ( м ))
11 x 2 (log j ( m ))
Таким образом, требуется не более log 2 (log j ( m )) итераций внутреннего цикла до выполнения условия j < m
больше не выполняется, поэтому O (log (log ( m ))). И если мы игнорируем базы, мы можем оценить общую сложность в O (log ( n ) · log (log ( m ))).