I know the big-O complexity of this algorithm is O(n^2)
, but I cannot understand why.
int sum = 0;
int i = 1; j = n * n;
while (i++ < j--)
s
big-O complexity ignores coefficients. For example: O(n)
, O(2n)
, and O(1000n)
are all the same O(n)
running time. Likewise, O(n^2)
and O(0.5n^2)
are both O(n^2)
running time.
In your situation, you're essentially incrementing your loop counter by 2 each time through your loop (since j--
has the same effect as i++
). So your running time is O(0.5n^2)
, but that's the same as O(n^2)
when you remove the coefficient.