这个算法的运行时间是多少?

时间:2016-04-14 23:03:54

标签: java algorithm

运行时间是什么

   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);
}

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)。