从在线笔记中,我读到了以下用于反转字符串的java代码片段,据称该代码片段具有二次时间复杂度。在我看来, i 的“for”循环只是迭代 s 的整个长度。它如何导致二次时间复杂度?
public static String reverse(String s)
{
String rev = new String();
for (int i = (s.length()-1); i>=0; i--) {
rev = rev.append(s.charAt(i));
}
return rev.toString();
}
public static String reverse(String s)
{
String rev = " ";
for (int i=s.length()-1; i>=0; i--)
rev.append(s.charAt(i); // <--------- This is O(n)
Return rev.toString();
}
我复制粘贴你的代码。我不确定你从哪里得到这个,但实际上 String 没有append
方法。或许rev
is a 字符串生成器 http://download.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html或其他可附加的 http://download.oracle.com/javase/6/docs/api/java/lang/Appendable.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)