运行时间是什么
String[] stringCombo = new String[5];
for (int i = 0; i < stringCombo.length; i++) {
stringCombo[i] = deleteCharAt(s,i);
s = original;
}
我不确定它是否是O(N),因为长度固定为5。
private static String deleteFirstChar(String s) {
return s.substring(1);
}
答案 0 :(得分:1)
以下是[String]的Java源代码。查看substring
,您会发现substring(..)
的顺序是O(1)(在Java 6之前)。 [[For Java&gt; = 7,substring实际上涉及复制(sub)数组,这是一个O(N)
操作(参见Paul Boddington的评论)]]
你这样做了5次,这是修复。因此,无论N
(?),此代码都将运行5次。
问:您认为这取决于N
吗?
答:否。
订单是O(1)。