Сложность алгоритма является асимптотическим поведением по мере роста 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.
Это, кажется, работает на меня. Я установил rspec-направляющие, runned rspec генератор и когда я даю
$ script/generate
Я получаю список генераторов:
Установленные Генераторы Rubygems: rspec, rspec_controller, rspec_model, rspec_scaffold Встроенный: контроллер, integration_test, почтовая программа, миграция, модель, наблюдатель, performance_test, плагин, ресурс, леса, session_migration
После генерации лесов с rspec_scaffold передача спецификаций. Поставщик/генераторы в Вашем проекте направляющих? Я думаю, что необходимо удалить их и использовать генераторы от драгоценных камней вместо этого.