这些复杂性类是否正确?

时间:2014-05-16 06:07:45

标签: big-o complexity-theory

我有一些问题要处理,我对他们的工作方式有一个很好的理解我只想要反馈我是否正确。我需要弄清楚以下的大记法。

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

}

}

我认为这个是O(N)。

1 个答案:

答案 0 :(得分:1)

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