Tod*_*lin 39
Big-O根据输入的大小告诉您算法的复杂性.如果您想知道算法如何扩展,这一点至关重要.如果您正在设计一个大型网站并且拥有大量用户,那么处理这些请求所需的时间非常重要.如果您有大量数据并且想要将其存储在一个结构中,那么如果要编写一些不需要一百万年运行的东西,您需要知道如何有效地执行此操作.
并不是Big-O符号本身会对你有所帮助.如果您了解Big-O表示法,您就会理解算法的最坏情况复杂性.从本质上讲,Big-O让您高度了解哪些算法速度快,速度慢,以及权衡取舍.如果您不理解这一点,我不知道如何理解.NET集合库中的任何内容的性能影响.
我不会去到更详细的在这里,因为这个问题已经被问很多次,但我只想说,这是你应该明白.这是一个相当高度投票的以前的Big-O问题,可以帮助您入门.
我正在阅读答案而我(认真地)认为大O被低估了.
作为通过编码赚钱的编码员,我们需要知道大O是什么以及我们为什么需要它.
让我解释一下我的想法:Big-O表示法是你工作的效率/表现.当输入变大时,您必须知道代码的工作速度有多快,因为在现实生活中,您无法知道确切的输入数量.此外,如果没有渐近符号,你无法比较两种不同的算法方法,所以如果你想选择更好的算法,你将把它们与big-O进行比较,看看哪一种适合你的情况.两者都可能效率低下,但你会知道哪一个更好.
Naw,我也很想知道,但现在我发现自己每次使用图书馆时都会考虑大O.
Big-O让您了解任何函数的渐近运行时间,这样您就可以确定数据结构A是否比数据结构B更快.
例如,你可能会想要使用类似于ArrayList你真正需要的东西Queue.当你尝试添加一个元素时ArrayList,如果你可以看到运行时间是O(n)(因为它需要创建一个新数组并将所有元素复制到...有时)但是在Queue它的O(1)那个时候你可以很容易地看到队列会更快.这实际上是一个很糟糕的例子,因为这两个结构之间存在许多其他差异,但是你得到了这个想法;)