我搜索了很多资料,似乎找不到关于运行时复杂度、递归和Java相关的内容。
我正在学习算法课程中的运行时复杂度和大O符号,并且我在分析递归算法方面遇到了困难。
private String toStringRec(DNode d)
{
if (d == trailer)
return "";
else
return d.getElement() + toStringRec(d.getNext());
}
这是一个递归方法,简单地遍历双向链表并打印出其中的元素。
唯一能想到的是,它的时间复杂度为 O(n),因为递归方法调用的次数将取决于DList中节点的数量,但我仍然不确定这个答案是否正确。
我不确定是否应该考虑 d
和 d.getNext()
的添加。
或者我完全走错了,运行时间复杂度是恒定的,因为它只是从 DList
中检索 DNodes
中的元素?