第 1 题
数据结构设 是描述问题规模的非负整数,下面程序片段的时间复杂度是( )。
x = 2;
while (x < n / 2)
x = 2 * x;
A.
B.
C.
D.
查看答案与解析
参考答案:A
答案:A。
时间复杂度要数循环执行次数,不能仅看条件中出现了 n。x 初值为2,每执行一次循环就乘2,执行 t 次后为 ,依次得到2、4、8、16……。退出时满足 ,因而 t 随 增长。循环体只有一次乘法和赋值,每次耗时按常数计算,总时间为 ,选A。B对应每次只推进固定距离的线性循环,C通常需要另有一层线性工作,D通常对应二重线性循环,本题都没有这些工作。n较小时循环可能一次也不执行;复杂度讨论的是n增大时的增长趋势。

