Is the time complexity of nested for, while, and if statements the same? Suppose a is given as an array of length n.
for _ in range(len(a)):
for _ in range(len(a)):
do_something
The for statement above will be O(n²).
i = 0
while i < len(a) * len(a):
do_something
i += 1
At first glance, the above loop can be thought of as O(n), but in the end I think that it is also O(n²).
Am I right?
>Solution :
Am I right?
Yes!
The double loop:
for _ in range(len(a)):
for _ in range(len(a)):
do_something
has a time complexity of O(n) * O(n) = O(n²) because each loop runs until n.
The single loop:
i = 0
while i < len(a) * len(a):
do_something
i += 1
has a time complexity of O(n * n) = O(n²), because the loop runs until i = n * n = n².