Я искал высоко и низко и не могу найти много материала, связанного со сложностями во время выполнения, рекурсией и Java.
В настоящее время я изучаю сложности времени выполнения и нотацию Big-O в своем классе Algorithms, и у меня возникают проблемы с анализом рекурсивных алгоритмов.
private String toStringRec(DNode d)
{
if (d == trailer)
return "";
else
return d.getElement() + toStringRec(d.getNext());
}
Это рекурсивный метод, который просто выполняет итерацию по двусвязному списку и распечатывает элементы.
Единственное, что я могу придумать, это то, что он имеет сложность во время выполнения O (n), так как количество рекурсивных вызовов методов будет зависеть от количества узлов в DList, но я все еще не чувствую себя комфортно с этим ответом.
Я не уверен, должен ли я учитывать добавление d
и d.getNext()
.
Или я просто не в курсе, а сложность во время выполнения постоянна, так как все, что он делает, это извлекает элементы из DNodes
в DList
?