December 22, 2022

Вычисления алгоритмической сложности

Сложность по времени:

Почему O(1) а не O(0) - потому что у нас хоть что-то выполняется

O(1) - это самая быстрая сложность. Она означает, что алгоритм выполняется одинаково быстро, независимо от размера входных данных. Например, если вы хотите найти первый элемент в списке, то это всегда займет одно и то же время, независимо от того, сколько элементов в списке.

O(n) - это линейная сложность

Она означает, что сложность алгоритма растет пропорционально количеству элементов в входных данных

O(n) - мы понимаем, что наш алгоритм максимально сделает столько шагов сколько у нас элементов

O - это самый худший случай (сколько максимально шагов может сделать наш алгоритм)

n - len(a) в самом худшем случае мы пройдем n шагов, для этого алгоритма

Квадратичная сложность — O(n^2)

В классической реализации речь идёт о двух вложенных циклах, когда внутренний цикл выполняется для каждого элемента внешнего цикла.

Например, если у нас есть массив из 10 элементов, то для обработки этого массива алгоритму потребуется 100 операций (10 * 10).