帮助找到以下代码的大写符号:
<li ng-repeat="curso in ctrl.list| removeAcentos: ctrl.input ">
... <!-- display items from ctrl.list that match ctrl.input -->
</li>
我认为它是i = n
while i > 0:
k = 2 + 2
i = i // 2
,因为n
被分配然后循环。这是对的吗?
答案 0 :(得分:2)
考虑这一点的简单方法(可以用作一般方法)如下:
i
的初始值为n
i
为1时,最后一次迭代将执行)执行了任意次数的迭代(调用该数字c
),i
的值为
((n / 2) / 2) / ... ) = n / (2 ^ c)
^ divide by 2 c times
因此,在循环结束时,我们需要(n / (2 ^ c)) = 1
。求解c
会给我们c = logn
。
因此,复杂性很大的是O(logn)
。 (也就是说,假设n
是一个整数而不是浮点数。)
答案 1 :(得分:0)
循环重复可以将n除以2的次数。那就是O(log n)。