如果n ^ 3的生长速度快于n ^ 2,即O(n ^ 2)<o(n ^ 3)则=“”为什么=“”是=“”n ^ 2 =“”更好=“”比=“”n ^ 3?

时间:2017-09-19 15:42:46

标签: algorithm data-structures analysis

=“”

n2的增长率低于n3。我知道我们可以用图形方式验证它,或者我们可以输入像1,2,3这样的值... n3在n2以内的时间内获得一个值,那么为什么我们更喜欢n3中的n2?

2 个答案:

答案 0 :(得分:2)

  

n3在比n2

更短的时间内获得一个值

n^3确实在<轴> 中获得 的值 <{1>}。但它正在实现的价值是什么?这些轴代表什么?让我们看看这个的实际图表:

enter image description here

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

Y轴是操作,而不是结果。 X轴是元素,而不是时间。因此,您的O(n^2)算法将执行更多操作。在每种情况下,结果都是相同的。此处测量的度量标准是对给定元素集执行的操作数,以实现结果。

O(n^3)n^3更快地爬上图表,这意味着它会执行更多操作来计算相同的结果。在同一硬件上进行更多操作意味着需要更多时间。

我们更喜欢n^2算法优于O(n^2)算法,因为我们更喜欢使用较少的操作计算相同结果的算法。

答案 1 :(得分:0)

因为你在衡量资源的使用(时间或空间),这是成本,而不是表现,所以越低越好