题目内容
(请给出正确答案)
提问人:网友lixin080108
发布时间:2022-02-27
[单选题]
下面程序段的时间复杂度为。i=1;while(i<=n)i=i*3;()
A.O(n)
B.O(3n)
C.O(log3n)
D.O(n3)
参考答案
简答题官方参考答案
(由简答题聘请的专业题库老师提供的解答)
C、O(log3n)
解析:整段代码语句,中循环体只有一个while(i<=n),执行的次数是:i = 1,i = 1*3=3,判断3是否小于等于n,是则继续循环,否则跳出循环。i =3,i = 3*3=9,判断9是否小于等于n,是则继续循环,否则跳出循环。i =9 ,i = 9*3=27,判断27是否小于等于n,是则继续循环,否则跳出循环。根据规律发现,循环次数由log3n决定,所以复杂度是O(log3n)
网友提供的答案
共位网友提供了参考答案,
查看全部
- · 有5位网友选择 B,占比50%
- · 有2位网友选择 C,占比20%
- · 有2位网友选择 A,占比20%
- · 有1位网友选择 D,占比10%