如果 n^3 的增长率比 n^2 快,即 O(n^2)<O(n^3) 那么为什么 n^2 比 n^3 好?

if n^3 has a fast rate of growth than n^2 i.e. O(n^2)<O(n^3) then why is n^2 better than n^3?

n2 的增长顺序低于 n3。我知道我们可以通过图形方式验证它,或者我们可以输入 1,2,3 这样的值...... n3取值的时间比n2短,那为什么我们更喜欢n2而不是n3?

n3 attains a value in less time than n2

n^3 确实在 Y 轴 上获得了一个值 space 在 X 轴 上比 n^2。但它获得的价值是多少?这些轴代表什么?让我们看一下这个的实际图表:

(在此图中,O(n^3) 将是 O(2^n)O(n^2) 之间的曲线。)

Y 轴是操作,而不是结果。并且 X 轴是 elements,而不是 time。因此,您的 O(n^3) 算法将执行 更多操作 。在每种情况下,结果 都是相同的。此处测量的指标是为获得结果对一组给定元素执行了多少操作。

n^3 爬升图表的速度比 n^2 快,这意味着它执行更多操作来计算相同的结果。在同一硬件上进行更多操作意味着需要更多时间。

我们更喜欢 O(n^2) 算法而不是 O(n^3) 算法,因为我们更喜欢用更少的操作计算相同结果的算法。

因为您测量的是资源(时间或space)的使用,这是成本,而不是性能,所以越低越好