一尘不染

O(n)和O(log(n))之间的区别-哪个更好,O(log(n))到底是什么?

algorithm

这是我关于数据结构的第一门课程,我们都在谈论每个讲座/
TA讲座O(log(n))。这可能是一个愚蠢的问题,但是如果有人可以向我确切解释这是什么意思,我将不胜感激!


阅读 943

收藏
2020-07-28

共1个答案

一尘不染

这意味着所讨论的事物(通常是运行时间)的缩放比例与其输入大小的对数一致。

Big-O表示法并不意味着 确切的 方程式,而是一个 界限
。例如,以下函数的输出均为O(n):

f(x) = 3x
g(x) = 0.5x
m(x) = x + 5

因为当你增加X,它们的输出都增加而线性-
如果有一个6:1之间的比例f(n)g(n),也将有大约6:1的比例之间f(10*n)g(10*n)等。


至于是否O(n)还是O(log n)比较好,可以考虑:如果n = 1000,那么log n = 3(日志基-10)。您宁愿算法运行1000秒还是3秒?

2020-07-28