请问第七题的另外三个选项的正确答案应该是什么,后边俩题的时间复杂度是怎么算出来的

请问第七题的另外三个选项的正确答案应该是什么,后边俩题的时间复杂度是怎么算出来的

img

img

img

7.你要先搞清楚什么叫时间复杂度,就好理解了
所谓时间复杂度,就是需要花的时间跟n的关系
O(n)就是跟n成正比,O(n^2)就是跟n的平方成正比
n=1的时候也是需要时间的,这时间肯定不是1秒,所以说时间是n那肯定是不对的
而问题规模其实是说需要多少代码来实现,代码多不代表时间也多,这是毫无关系的两件事
一个while(1);只需要一行代码,而执行时间是无限长
那么到底跟n什么关系,就看到底循环多少次
循环n次就是跟n成正比,循环n^2次就是跟n^2成正比
注意,这里只写跟n的关系,其他系数和常数项是可以忽略的
比如需要循环an+b次,那么也是跟n成正比
-=-=-=--
8.递归n次,这跟循环n次是一回事,所以是O(n)
11.i在自增,sum也在自增,所以自增速度是平方,那么次数就是开方

阶乘那个,给个n,就递归 n - 1次,加调用一次,不就是 o(n) 了

最后一个,sum += ++i ,这里 i 每次自加1再参与计算,sum每次加数都比上一次多加1,应该是 o(logn),比如 n = 12 ,你运算5次,n=100,循环到14就结束了

问题规模说的是存储复杂度