2014-05-16 58 views
0

我有几个问题要做,而且我对他们的工作方式有一个体面的理解,我只是想反馈一下,如果我是正确的。我需要弄清楚下面的大哦。这些复杂性类是否正确?

1.

public static int[] mystery1(int[] list) { 

int[] result = new int[2*list.length]; 

for (int i=0; i<list.length; i++) { 

    result[2*i] = list[i]/2+list[i] % 2; 

    result[2*i+1] = list[i]/2; 

} 

我认为这一个将是NLOG(N)

2.

public static int[] mystery2(int[] list) { 

for (int i=0; i<list.length/2; i++) { 

    int j = list.length-1-i; 

    int temp = list[i]; 

    list[i] = list[j]; 

    list[j] = temp; 

} 

return list; 

}

我认为这一个将是O(logN个),因为它正在潜水2,直到它完成

3.

public static void mystery3(ArrayList<String> list) { 

for (int i=0; i<list.size-1; i+=2) { 

    String first = list.remove(i); 

    list.add(i+1, first); 

} 

}

我认为这一个将是O(N)

4.

public static void mystery4(ArrayList<String> list) { 

for (int i=0; i<list.size-1; i+=2) { 

    String first = list.get(i); 

    list.set(i, list.get(i+1)); 

    list.set(i+1, first); 

} 

}

我认为这一个将是上)。

回答

1

所有是O(N),除了Mystrey3其是O(N^2)=由于add.list

+0

那么我是完全错误的。 add.list是什么使它顺序n^2? – aeipownu