以下函数 f1 的时间复杂度比函数 f2 的更高。
void f1(int n) {
for (int i = 1; i < n; i *= 2);
}
void f2(int n) {
if (n <= 1) return;
f2(n - 1);
f2(n - 1);
}判断正误题需注意绝对化表述("一定""必须""只能"等)往往是错误的。
判断题中注意"一定""总是""所有""唯一"等绝对化表述通常是错误的。但也要结合具体知识点判断。
【考点】时间复杂度分析|递归时间复杂度|循环时间复杂度
本题考查《GESP 五级算法》模块中时间复杂度与递归复杂度的综合分析。命题人卡住的是那些只会背"递归比循环慢"这种伪结论、却不会真正推导复杂度函数的考生——五级题里这类"比较复杂度高低"的题,专治眼高手低。