问题:
下面程序段中带下划线的语句的执行次数的数量级是(
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。