时间复杂度O(N ^ 2)在这里如何?

时间:2019-05-31 17:33:18

标签: java time complexity-theory analysis

我已经知道这个问题的答案是O(N ^ 2),但我不知道如何。我知道for循环会运行N次,但是如何运行N ^ 2次?

public static String rev(String s){
    String r = "";
    int N = s.length();
    for(int i = 0; i < N; i++){
        r = s.charAt(i) + r;
    }
    return r;
}

1 个答案:

答案 0 :(得分:5)

在Java中,String在循环中的串联r = s.charAt(i) + rO(N^2),因为Strings是不可变的–在每个String上都创建了一个{{1}}的新副本串联。