public SomeObject secondFunction(SomeObject obj) {
SomeObject retVal = new SomeObject
for data in this.dataCollection {
for data2 in obj.dataCollection {
if(someCondition) {
retVal.add(data)
}
}
}
return retVal
}
Я пытаюсь изучить алгоритм анализа. Что такое анализ Big Θ реализации этой функции? Почему как?
Я не думаю, что это алгоритм n-квадратов, поскольку две зацикленные структуры, возможно, имеют разные размеры. Интуитивно я хочу назвать его алгоритмом n*m, поскольку количество элементов в obj,dataCollection и this.dataCollection неизвестно. Но я никогда не видел, чтобы эта фраза использовалась раньше, поэтому, вероятно, она неверна. Что это такое?
Кроме того, что мы можем сказать о лучшем, худшем и среднем случаях? Кажется, что лучший и худший случаи одинаковы, так как он каждый раз будет перебирать все элементы в обеих структурах. Это правильно или неправильно? Кроме того, что это означает для среднего случая? Будет ли средний случай таким же, как лучший и худший случай в этом конкретном примере?