Сложность времени Big O, Theta, Omega - PullRequest
0 голосов
/ 04 марта 2020

Я студент колледжа по специальности искусственный интеллект. Я чувствую себя глупо, потому что я просто не могу понять Сложность Времени. И мой учитель не поможет мне. Я неудачник и невежественен. Может ли кто-нибудь помочь мне понять сложность времени? Например, что такое Big O этого кода? или какова Сложность Времени для этого двоичного дерева. Я получил 4/50 на моем недавнем экзамене, так что теперь я действительно в отчаянии

1 Ответ

0 голосов
/ 04 марта 2020

Big-O - это в основном количество времени / пространства (временная сложность / пространственная сложность), в котором работает определенный c алгоритм.

Это зависит от операций алгоритма. Я проиллюстрирую временную сложность.

Например, функция:

## l is a list of size=n
def linear(l):
   for i in l:
      print(i)

выполняет итерацию по списку size = n, поэтому алгоритму потребуется получить все значения n, пока его выполнение не будет выполнено. цель.

Таким образом, это big-o - это O (n), поскольку оно работает линейно с количеством n.

Функция:

## l is a list of k lists, each of them has size=n
def quadratic(matrix):
   for l in matrix:
      for i in l:
         print(i)

Здесь необходимо выполнить итерацию по k спискам и по n элементам в каждом из них.

Итак, алгоритм работает в O (k * n).

...