void yash(){
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=log(i);j++)
printf("Hello !!");
}
此功能的复杂性是什么?
答案 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))。