I'm confused about the complexity of the following (the operation performed inside the inner loop is in constant time):
for(int i=0; i<n; i++)
for(int j=i; j<n; j++)
is this O(n^2) or O(n)? I figure O(n^2). Any ideas?
also the following makes me curious:
for(int i=0; i<n; i++)
for(j=0; j<i; j++)
Definitely O(n squared)
, of course. Summary explanation for both cases: 1 + 2 + ... + n is n(n+1)/2
, that is, (n squared plus n) / 2
(and in big-O we drop the second, lesser part, so we're left with n squared / 2 which is of course O(n squared)
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With