假设我们有两个算法,A和B,用于解决某个问题(比如两个n×n矩阵相乘,或者对一个n个整数数组排序)让n表示问题的输入大小,让ta(n)和tb(n)表示步骤数
分别由算法A和B对大小为N的输入进行采样。
已知TA(n)=O(n3)和TB(n)=O(n5)对于足够大的n,算法a比算法b执行的步骤更少,这是真的吗?为什么或者为什么不?

最佳答案

首先,我想你的意思是边界是o(n3)和o(n5)(即分别是3和5的幂)。
既然O is an upper bound,你就不能对比较说什么了例如:
n2=o(n3),n1.5=o(n5),但即使对于大n,前者的函数也比后者大。
相反,n1.5=o(n3),n2=o(n5),这里,对于大n,前一个函数确实大于后一个。
如果问题是关于Θ,而不是O,答案就不同了——在这种情况下,你可以说,对于足够大的n,前者执行的步骤比后者少。

关于algorithm - 功能增长大,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39503458/

10-14 01:01