Time complexity 试图理解二进制搜索的时间复杂性

Time complexity 试图理解二进制搜索的时间复杂性,time-complexity,big-o,binary-search,Time Complexity,Big O,Binary Search,我试图理解二进制搜索的时间复杂性的大O符号。我知道是O(logn)。那么这基本上是说对于一个包含16个元素的列表,它最多需要log2(16)=4次尝试?如果这是真的,那么对于日志为3.6的12个列表,这将如何工作 感谢大oh表示法的有用性是而不是,它可以准确地告诉您处理某个大小的输入需要多少操作。不可能 Big oh表示法告诉我们处理所需的操作数与输入大小的关系如何变化 因此,用实际数字来代替是没有多大意义的 如果它真的能帮助你从实际数字的角度来理解它,那么你可以把它们看作是平均数,因此对于12

我试图理解二进制搜索的时间复杂性的大O符号。我知道是O(logn)。那么这基本上是说对于一个包含16个元素的列表,它最多需要log2(16)=4次尝试?如果这是真的,那么对于日志为3.6的12个列表,这将如何工作


感谢

大oh表示法的有用性是而不是,它可以准确地告诉您处理某个大小的输入需要多少操作。不可能

Big oh表示法告诉我们处理所需的操作数与输入大小的关系如何变化

因此,用实际数字来代替是没有多大意义的

如果它真的能帮助你从实际数字的角度来理解它,那么你可以把它们看作是平均数,因此对于12个元素的列表,你可以把二进制搜索看作是平均3.6操作的要求


然而,请注意,这是一个相当狭隘的观点,什么是大oh符号的全部内容。big oh表示法的真正用处在于告诉我们二进制搜索比线性搜索更好,而不是能够准确地告诉我们某个特定示例需要多少操作。

Ah ok,那么是不是说操作的数量会随着输入大小的增加而对数增加,你不担心数字吗?没错。实际数字是细节,操作所代表的机器实际成本也是细节。就机器而言,二进制搜索中的一个操作实际上比线性搜索中的一个操作需要更多的时钟周期,因为算法更复杂。但这并不重要,因为当您不断检查越来越大的输入集时,无论二进制搜索执行每个操作的效率有多低,总会有一个点开始优于线性搜索。这就是big-Oh的美妙之处。另外,我注意到人们对你的问题投了反对票。为了不让你失望,让我告诉你,这是因为海报在发布问题之前需要做一些研究,而流行的观点是关于big oh的所有内容都有很好的文档记录,并且相对容易访问。(见维基百科。)然而,从我每天在这里看到的其他问题来看,你的问题并没有那么糟糕。是的,好的,有道理。谢谢你,伙计,谢谢你。我确实看了其他问题,但我没有看到任何与实际数字有关的问题,所以我问了,但现在我看到数字其实并不重要,它只是描述了它