题目
递归算法[1]一定比迭代算法更高效。A. 对B. 错
递归算法[1]一定比迭代算法更高效。
A. 对
B. 错
题目解答
答案
B. 错
解析
考查要点:本题主要考查对递归算法和迭代算法效率的理解,以及是否能够辨析两者的优劣关系。
核心思路:
递归算法通过函数自身调用解决问题,而迭代算法通过循环实现重复操作。递归算法的效率通常低于迭代算法,原因包括:
- 空间复杂度:递归每次调用会生成新的栈帧,占用更多内存;
- 时间复杂度:未经优化的递归(如斐波那契数列的直接递归实现)可能因重复计算导致时间效率极低。
因此,“一定更高效”的表述是绝对化的,存在反例,故答案为“错”。
关键分析:
- 递归的缺点:
- 栈溢出风险:深度过大时可能超出系统栈容量;
- 额外开销:函数调用会产生额外的系统调用和返回操作,增加时间消耗。
- 迭代的优势:
- 空间效率高:仅需循环变量,无需维护调用链;
- 时间效率优:避免重复计算,可通过简单循环完成任务。
- 反例说明:
- 计算斐波那契数列时,直接递归的时间复杂度为 $O(2^n)$,而迭代为 $O(n)$,效率差距显著。
结论:递归算法并非在所有情况下都更高效,因此题目中的表述错误。