【发布时间】:2010-03-28 13:29:46
【问题描述】:
我从here 阅读了有关 Big-O 表示法的信息,并且在计算复杂度方面几乎没有问题。所以对于下面的代码,我已经计算了复杂度。需要您的输入。
private void reverse(String strToRevers)
{
if(strToRevers.length() == 0)
{
return ;
}
else
{
reverse(strToRevers.substring(1));
System.out.print(strToRevers.charAt(0));
}
}
如果考虑内存因素,则上述 n 个字符的字符串的代码复杂度为 O(n^2)。解释是针对由 n 个字符组成的字符串,下面的函数将被递归调用 n-1 次,并且每个函数调用都会创建一个单个字符的字符串(stringToReverse.charAT(0))。因此它是 n*(n-1)*2 转换为 o(n^2)。让我知道这是否正确?
【问题讨论】:
标签: string memory complexity-theory big-o