假设我们使用X算法与O(n)
或O(log n)
或etc...
实施了一个问题。当n
的值足够大以至于我们必须考虑替代实现时?让我们看看我是否可以更好地解释自己。
对于n = 10,000
O(n ^ 2)= 100,000,000
O(n)= 10,000
O(Log n)= 4
。 。
显然,最好的算法将是具有最低“Big-o”的算法。
因此,假设我们使用冒泡排序对长度为5的数组进行排序,结果为25,这并不是那么糟糕。但是,如果O符号的结果如此之大,那么实际上我们必须使用另一种实现。
答案 0 :(得分:4)
当它成为你申请的瓶颈时。
但总的来说,目标是复杂性最低的算法,同时也易于实现。
答案 1 :(得分:1)
某种Big O复杂性并不意味着你应该总是避免它;你应该拍摄较低复杂度的算法,但是n(12)的O(n ^ 2)将会快速运行,而不管O(n ^ 2)通常被认为是“坏”的复杂性。
O(n ^ 2)并不自动意味着“太慢”; O(n log n)不会自动表示“yay,这很快”。如果一个给定的算法运行得太慢,那么你想减少它的运行时间,你通常可以通过降低它的复杂性来做到这一点,但是直到它成为一个问题,不要冒汗。
答案 2 :(得分:0)
如果存在另一个较低Big-O的解决方案,那么解决方案效率太低。
答案 3 :(得分:0)
当它等于且alpha = 1时。