-, , -O.
:
for (int i=2; i < n; i*=2)
1 i=2
i*=2, = {2,4,8,16,32,64...}, i 2 ^ x, :
i > n, , 2 ^ x > n, , :
log2 (2 ^ x) = log2 (n)
x = log2 (n)// , i log2 (n) .
for , 2log2 (n) +1 for.
:, , for 2log2 (n) +1
for (int j=0; j < i; j++)
j=0 1
j++ j = {0,1,2,3,4,5,6,7,8....}, j = n, for
2n + 1, , o :
(2n + 1) * (2log2 () +1)
4nlog2 (n) + 2n + 2log2 (n) + 1
log2 (n) (4n + 2) + 2n +1
, o (log2 (n) (4n + 2) + 2n +1), , O, , :
O (log2 () )
Hope this is clear enough to understand.
Sincerely.
source
share