Algorithm 这类函数的时间复杂度是多少? void yash(){ int i,j; for(i=1;i

Algorithm 这类函数的时间复杂度是多少? void yash(){ int i,j; for(i=1;i,algorithm,data-structures,graph,tree,time-complexity,Algorithm,Data Structures,Graph,Tree,Time Complexity,循环将这样迭代- 1*log(1)时间 2*log(2)次 以此类推,直到n*log(n)次 在所有这些值中,n*log(n)是最高的(上限)。因此,时间复杂度是渐进的n*log(n) 更新: 如果您为每个迭代计算log(i),而不是将其存储在变量中,那么时间复杂度是O(n*log(n)2),假设计算日志(i)不是O(1)。如果是O(1),那么时间复杂度是O(n log(n))。O时间复杂度?是的O时间复杂度就大O注释而言,O(n*log(n))你认为呢?分享你的想法!这取决于log(i)-

循环将这样迭代-

  • 1
    *
    log(1)
    时间
  • 2
    *
    log(2)
  • 以此类推,直到
    n*log(n)
在所有这些值中,
n*log(n)
是最高的(上限)。因此,时间复杂度是渐进的
n*log(n)

更新:


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

O时间复杂度?是的O时间复杂度就大O注释而言,O(n*log(n))你认为呢?分享你的想法!这取决于
log(i)
-调用的成本有多高。“假设计算log(i)不是O(1)”“log(i)的时间复杂度会使术语log(n)^2?O(log n)?@0x499602D2是的,但不确定。因此,我说
假设
void yash(){ 

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