解题步骤
- 确定每一层循环的取值范围
- 写出关键语句(x++)的求和表达式
- 当
分析时间复杂度
例题
例1 以下 C 代码的时间复杂度是____。
int count = 0;
for (int i=0; i*i<n; i++)
for (int j=0; j<i; j++)
count++;
**正确答案:**O(n)
- 当
, 时间复杂度为O(n)
例2 下列程序段的时间复杂度是____。
int sum = 0;
for (int i = 1; i < n; i *= 2)
for (int j = 0; j < i; j++)
sum++;
**正确答案:**O(n)
- i = 1, 2, 4, ..., 2^k(k=logn),
- 当
, 时间复杂度为O(n)