Обозначение Big O не эквивалентно времени. Это показатель сложности времени. В качестве примера возьмем следующие фрагменты:
Фрагмент A:
for i in range(n):
for j in range(n):
# operation
Фрагмент B:
for i in range(n):
for j in range(n):
# operation
for k in range(n):
# operation
for q in range(n):
# operation
Фрагмент C:
for i in range(n):
for j in range(n):
# operation
for k in range(n):
# operation
for q in range(100):
# operation
В фрагменте A операция будет выполняться N^2
раз, в фрагменте B операция будет выполняться 3N^2
раз, а в последнем фрагменте она будет выполняться 2N^2+100
раз; однако, учитывая, что операция имеет O(1)
, все три фрагмента будут иметь временную сложность O(N^2)
, но очевидно, что их выполнение не займет одинаковое время.
Посмотрите это информативное видео для получения дополнительной информации.