Циркулярный импорт в Flask меня заводит. Из документов: http://flask.pocoo.org/docs/0.10/patterns/packages/
... Имейте в виду, что это плохая идея в целом, но здесь это на самом деле прекрасно.
blockquote>Это не нормально. Это глубоко неправильно. Я также считаю, что любой код в
__init__.py
является плохой практикой. Это делает приложение сложнее масштабировать. Чертежи - это способ облегчить проблему с помощью циркулярного импорта. Я думаю, что Фласку нужно больше этого.
Сложность алгоритма является асимптотическим поведением по мере роста n
. Если не указано, мы принимаем поведение в худшем случае. Здесь этот наихудший случай - когда каждый элемент является новым для списка, так что Any
должен пройти весь существующий список.
Вы прибили эти части: внешний цикл выполняется n
раз; внутренний цикл должен обходить этот список до тех пор, пока не найдет элемент (можно предположить, что он проверяет элементы m
, где m
- текущий размер списка) или не найдет его (проверяет все элементы m
). ]
В худшем случае, Any
1 + 2 + 3 + ... + (n-1) раз, добавляя каждый item
в список. Я уверен, что вы узнаете это как O (n ^ 2) .
Предполагая, что дубликаты являются некоторой фиксированной или ограниченной пропорцией исходного списка, это выражение зависит от n
.
Это помогает пониманию?
Пояснение:
Сумма последовательности 1 .. n
равна n(n+1) / 2
или (n ^ 2 + n) / 2. Здесь преобладает член n ^ 2.