递归与迭代的比较 — 信息技术选择题
题目
某程序需对正整数 n 求 1 至 n 的累加和,递归方案将问题化为求 n−1 的累加和再加入 n,迭代方案用循环逐项累加。假设两种方案均正确执行,且每次基本操作耗时相同,不考虑语言实现差异。下列比较正确的是:
A. 两者时间复杂度均为 O(n),递归方案需要 O(n) 调用栈空间,迭代方案只需 O(1) 额外空间
B. 递归方案时间复杂度为 O(log n),迭代方案为 O(n),因为递归每次缩小问题规模
C. 两者时间复杂度均为 O(n),且都只需 O(1) 额外空间,因为累加和只保存一个数
D. 递归方案代码必然比迭代方案短,且运行效率必然更高