设n是描述问题规模的正整数,下列程序片段的时间复杂度是( )。 i=n*n; while(i!=1) i=i/2;

admin2019-05-10  35

问题 设n是描述问题规模的正整数,下列程序片段的时间复杂度是(    )。
i=n*n;
while(i!=1)
    i=i/2;

选项 A、0(log2n)
B、0(n)
C、0()
D、0(n2)

答案A

解析 考查时间复杂度。将算法中基本运算的执行次数的数量级作为时间复杂度。基本运算是“i=i/2;”,设其执行次数为k,则(n*n)/(2k)=1,得k=log2n2,因此k=log2n2=2log2n,即k的数量级为log2n,因此时间复杂度为O(log2n)。
转载请注明原文地址:https://kaotiyun.com/show/M9Ci777K
0

最新回复(0)