Эти вопросы в основном следуют из моего ответа здесь. Я действительно хотел сказать, что такое Big-O этого алгоритма, но я не был уверен, что моя претензия была полностью звуковой.
Итак, заданы два массива:
B = [ "Hello World!", "Hello Stack Overflow!", "Foo Bar!", "Food is nice...", "Hej" ]
A = [ "World", "Foo" ]
что такое Big O of:
List<string> results = new List<string>();
foreach (string test in B)
{
if (A.Any(a => test.Contains(a))
results.Add(test);
}
Я считаю, что он находится где-то между O(n)
и O(n^2)
, поскольку он зависит от того, где результат Any()
соответствует...