Большие обозначения O для описания асимптотического поведения функций. По сути, он говорит вам, как быстро функция растет или уменьшается
Например, при анализе какого-либо алгоритма можно обнаружить, что время (или количество шагов), необходимое для решения проблемы размера n, определяется как
T(n) = 4 n^2 - 2 n + 2
Если мы игнорируем константы (что имеет смысл, поскольку они зависят от конкретного оборудования, на котором запускается программа) и медленнее растущих терминов, мы можем сказать, что «T (n)» увеличивается в порядке n ^ 2 »и написать: T (n) = O (n ^ 2)
Для формального определения предположим, что f (x) и g (x) - две функции, определенные на некотором подмножестве действительных чисел. Мы пишем
f(x) = O(g(x))
(или f (x) = O (g (x)) для x -> бесконечность, чтобы быть более точным), если и только если существуют такие константы N и C, что
|f(x)| <= C|g(x)| for all x>N
Интуитивно это означает, что f не растет быстрее, чем g
Если a - некоторое действительное число, мы пишем
f(x) = O(g(x)) for x->a
тогда и только тогда, когда существуют константы d> 0 и C такие, что
|f(x)| <= C|g(x)| for all x with |x-a| < d
Так что для вашего случая это будет
O(n) as |f(x)| > C|g(x)|
Ссылка от http://web.mit.edu/16.070/www/lecture/big_o.pdf
for r from 0 to xlist: // --> n time
for c from 0 to ylist: // n time
sum+= values[r][c]
n+1
}
Big O Нотация дает предположение, когда значение очень большой внешний цикл
будет выполняться n раз, а внутренний цикл - n раз
Предположим, что n -> 100, чем всего n ^ 2 10000 времен выполнения