我在其中一个视频(https://www.youtube.com/watch?v=A03oI0znAoc&t=470s)中看到,假设f(n)= 2n +3,则BigO为O(n)。
现在我的问题是,如果我是一个开发人员,我得到了O(n)作为f(n)的上界,那么我如何理解这个上界的确切值是多少。因为在2n +3中,我们去掉了2(因为它是常量)和3(因为它也是常量)。所以,如果我的函数是f(n),其中n= 1,我不能说g(n)是上界的,其中n= 1。
% 1不能是%1的上界。我发现很难理解这一点。
发布于 2019-06-28 06:53:14
作为一名开发人员,您将考虑将big-O作为决定使用哪种算法的第一个指示。如果你有一个算法,比方说,O(n^2)
,你会试着理解是否还有另一个算法,比如说,O(n)
。如果问题本质上是O(n^2)
,那么big-O符号将不会提供进一步的帮助,您将需要使用其他标准来进行决策。但是,如果问题本身不是O(n^2)
,而是O(n)
,那么您应该丢弃任何碰巧是O(n^2)
的算法,并找到一个O(n)
算法。
因此,大O符号将帮助您更好地对问题进行分类,然后尝试使用复杂度与大O相同的算法来解决它。如果你足够幸运地找到了2个或更多具有这种复杂性的算法,那么你将需要使用不同的标准来思考它们。
https://stackoverflow.com/questions/56782512
复制相似问题