问题:
下面程序段中带下划线的语句的执行次数的数量级是( n l o g 2 n nlog_2n nlog2n )。
i:=1;
WHILE i<n BEGIN FOR j:=1 TO n DO x:=x+1; i:=i*2; END
分析:
i:=1;
WHILE i<n
BEGIN
FOR j:=1 TO n
DO x:=x+1; i:=i*2;
END
语句频度最大的语句是i=i*2
,
根据WHILE语句可知, 2 x ∗ i = n 2^x*i = n 2x∗i=n,执行次数 x = l o g 2 n x=log_2n x=log2n;
根据FOR语句可知,执行次数n,
故执行次数的数量级是 n l o g 2 n nlog_2n nlog2n。