在大O意义上哪种算法更好?

时间:2017-02-12 23:11:02

标签: algorithm big-o

我的教授给了我们一个问题:

  

算法A和B正好花费TA(n)= 0.1n ^ 2log10(n)和TB(n)=   对于尺寸为n的问题,分别为2.5n ^ 2微秒。选择算法,这在Big-Oh意义上更好,并找出问题   尺寸n0使得对于任何更大尺寸的n> n0所选算法   优于对方。如果你的问题的大小n≤10^ 9,   你建议使用哪种算法?

起初,我认为算法A在Big-Oh意义上会更好,但他的回答是A更好。我对A更好的理由是它比B慢。我纠正还是我的教授是正确的?

以下是他的回答:

  

在Big-Oh意义上,算法B更好。它   当TB(n)≤TA(n)时,即当2.5n ^2≤时,优于算法A.   0.1N ^ 2log10(N)。这个不等式降低到log10(n)≥25,或n≥n0= 1025.如果n≤10^ 9,则选择的算法是A

他是正确还是我是对的?

1 个答案:

答案 0 :(得分:2)

B在大o方面更好,因为它需要与n平方成比例的时间,但A与n平方乘以log n成比例,后者更大。 因此,对于足够大的n B值,会更快。