Функция2 будет O (n ^ 2). Да, функция1 имеет линейный размер карты, но также выполняет итерацию по значениям, что не позволяет ей стать O (n ^ 3) или O (n ^ 4).
Есть пара проблем однако с этим кодом вам нужно делать function1(map)
, а не map.function1()
, поскольку function1
не является методом map
. Кроме того, это может быть достигнуто в Python простым перебиранием элементов на карте следующим образом:
def function2(map):
b = list()
for item1 in map:
for item2 in map:
if (xxxxx):
b.append(item2)
return b
На самом деле это можно еще более упростить, используя понимание списка:
def function2(map):
return [item2 for item1 in map for item2 in map if xxxxx]
Редактировать: обновлено понимание списка