действует как параметр против al oop Time Complicity - PullRequest
1 голос
/ 29 апреля 2020

Я предполагаю, что при передаче функции (назовем ее функцией B) в качестве параметра функции A ее необязательно добавление к big-O функции A. functionA(functionB) или len(range(n))

но если функция вызывается во время итерации по ней, то она меняет сложность big-o time.

тогда не зацикливается ли встроенная функция так же?

Вот пример в python:

a=list() # of some array 
for _ in range(a):
     a.count(1)

У меня нет CS фона, может кто-то уточнить это.

1 Ответ

1 голос
/ 29 апреля 2020

Я не совсем уверен, что вы подразумеваете под "передачей функции" в функцию B, если только вы не имеете в виду декоратор ... во всяком случае, если вы вызываете функцию в другой функции, можно с уверенностью предположить, что вам придется рассмотрим временную сложность вложенной функции. Например, если я создаю функцию:

def funcA(i_max, j_max):
    for i in range(i_max):
        for j in range(j_max):
            print("aaaaaaaah")

, которая имеет сложность O(i_max * j_max), а затем я делаю другую функцию:

def funcB(k_max):
    for k in range(k_max):
        funcA(some_i, some_j)

, то, естественно, funcB будет иметь сложность O(k_max * some_i * some_j) - так что вы должны рассмотреть биг-О другой функции.

...