一道计算时间复杂度的题!x=n; // n>1 while (x>=(y+1)*(y+1))y++;能多具体就多具体.

问题描述:

一道计算时间复杂度的题!
x=n; // n>1
while (x>=(y+1)*(y+1))
y++;
能多具体就多具体.

你这个没给出y的情况,我猜测是y以默认初始值为0 ,那么,你要看时间复杂度,就看这段时间内都做了什么计算,这里就是2个(y+1)动作,一次乘法操作,一次y++操作 (这是在条件为真的情况下),再外加一次判断条件为假的情况,就是2次(y+1) 和一次 乘法(y+1)(y+1)
接下来就看循环几次了,因为是判断(y+1)*(y+1)和n 的大小关心,其实就是看小于n的完全平方数是什么,那么,这个值肯定