一道计算时间复杂度的题!!!!!

如题所述

第1个回答  2020-02-05
你这个没给出y的情况,我猜测是y以默认初始值为0
,那么,你要看时间复杂度,就看这段时间内都做了什么计算,这里就是2个(y+1)动作,一次乘法操作,一次y++操作
(这是在条件为真的情况下),再外加一次判断条件为假的情况,就是2次(y+1)
和一次
乘法(y+1)(y+1)
接下来就看循环几次了,因为是判断(y+1)*(y+1)和n
的大小关心,其实就是看小于n的完全平方数是什么,那么,这个值肯定<=
根号下n
(因为根号下n
对应的是他是第几个完全平方数,这是很简单的数学问题)所以计算次数是(4倍根号下n
)+
3
所以时间复杂度是O(N的1/2次方)
这里数学符号不太好表示,但是我觉得我应该解释清楚了。。
相似回答