一尘不染

Big O符号Log Base 2或Log Base 10

algorithm

当文章/问题声明算法的Big O运行时间为O(LogN)时。

例如,Quicksort的大O运行时间为O(LogN),其中它的对数为10,而二叉树的高度为O(LogN + 1),其中它的对数为2

1)我对是以10为底数还是以2为底数感到困惑,因为不同的文章对数使用不同的底数。

2)如果它的对数为2或对数为10,会有所不同吗?

3)当我们看到O(LogN)时,可以假设它的对数为10吗?


阅读 317

收藏
2020-07-28

共1个答案

一尘不染

我认为日志的基础是什么都没有关系,因为相对的复杂性是相同的,而与所使用的基础无关。

因此,您可以将其视为O(log 2 X)= O(log 10 X)

还要提到对数是由一些常数相关的。

在此处输入图片说明

所以

log₁₀( x )= log 2( x )/ log 2(10)

因此,在大多数情况下,我们通常在复杂性分析中不考虑常量,因此我们说基数无关紧要。

您也可能会发现大多数情况下,就像Merge
Sort
一样,该底数被认为是2 。log₂ n由于节点有两个分支,因此树的高度为。

1)我对是以10为底数还是以2为底数感到困惑,因为不同的文章对数使用不同的底数。

因此,如上所述,基数的变化无关紧要。

2)如果它的对数为2或对数为10,会有所不同吗?

不,没关系。

3)当我们看到O(LogN)时,可以假设它的对数为10吗?

是的,只要您知道基本转换规则,就可以假设。

2020-07-28