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