大 O 符号查询

Big O Notation queries

int k = n;
while (k > 0)
{
for (int j = 0; j < n; j++)
{
 System.out.println(“Inside the inner loop”);
 }
k = k / 2;
 } 

你好这个问题,我想出了两个答案,那就是

O (N^2 Log N) 或 O (n * N/2) = O (N2/2)。不知道有相同的还是不同的?我的讲师还提到选择大写字母。因此,对于这道题,有一道O(N^2)和一道O(L​​og N)。所以根据我的讲师,答案应该是 O(N^2)?请帮忙。谢谢

答案是O(N * log N)

因为你将 K 分成两半,所以你得到 O(log N) 用于外循环。因为在每次迭代中你迭代 N 次,那么它将是 O(N * log N).