这种功能的时间复杂度是多少?

时间:2018-09-03 15:23:43

标签: algorithm data-structures graph tree time-complexity

void yash(){ 

    int i,j;
    for(i=1;i<=n;i++)
       for(j=1;j<=log(i);j++)
          printf("Hello !!");
}

此功能的复杂性是什么?

1 个答案:

答案 0 :(得分:2)

循环将像这样迭代-

  • 1 * log(1)时间。
  • 2 * log(2)次。
  • 依此类推,直到n * log(n)次。

在所有这些值中,n * log(n)是最高的(上限)。因此,时间复杂度渐近为n * log(n)

更新:

如果您要为每次迭代计算log(i)而不是将其存储在变量中,则时间复杂度为 O(n * log(n) 2 ,假设计算log(i)不是O(1)。如果是O(1),则时间复杂度为O(n log(n))。