运行时间是多少?

时间:2019-02-18 10:27:00

标签: java algorithm big-o

对于如何寻找此算法的Big-O,我有些困惑。

到目前为止,我认为while循环不会像数组的正常迭代那样是O(n),因为x在每个for循环之后都会加倍。 mergeSort是n log n,我不知道如何处理for循环的时间复杂度。我也不认为它是O(n),因为x再加一遍。

void algorithm2 (int[] A, int n) { 
  int x = 1;
  while (x < n) { 
    for (int i = 0; i + x < n; i += 2 * x ) {
      mergeSort(A, i , i + x -1, i + 2 * x - 1);
    } 
    x = x * 2;
  }
} 

任何帮助将不胜感激!

0 个答案:

没有答案