题干:
2017统考第一道选择题
已知一段代码如下,分析它的时间复杂度:
int func(int n){
int sum=0,i=0;
while (sum<n) sum += ++i;
return i;
}
解析:代码块循环体内容 => i = i + 1,sum = sum + i.结果如下,
1 = 0 + 1
3 = 1 + 2
6 = 3 + 3
10 = 6 + 4
15 = 10 + 5
…
sum(x) = sum(x-1) + x
x是循环次数,利用递归的思路写出它的算法如下:
int SUM(int x){
if (n == 1