问题标题: 为什么有些程序的复杂度都包含log n?

0
0
已解决
赵逸凡
赵逸凡
初级启示者
初级启示者

我个人猜想是:

log(n)表示的是求n是2的几次方(假设我们以2为底数)

因为计算机的处理是二进制线性计算,所以我认为可能跟这个有关


0
已采纳
刘景程
刘景程
新手光能
新手光能

与这个无关

计算机的计算方式的确是二进制,可是这与时间复杂度似乎并未有什么直接的联系

出现logn的话是排除了一半的元素计算,比如二分

0
0
0
李泽远
李泽远
高级天翼
高级天翼

最常见的:分治算法就是log(n)级的

比如二分就是O(logn),因为它把n二分,再二分,再二分

其他分治也同理,O(logn)表示的意思不一定是log2(n),表示的是对数这个数量级的。

log3(n),lg(n)和ln(n)当然也都是对数这个数量级的

所以复杂度log n取决于算法

lz说的似乎有点道理,我也不是很懂……

不完全是因为计算机的二进制

0
黄子扬
黄子扬
初级天翼
初级天翼

有些算法确实是log 2 n的,比如分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分分治

我要回答