您如何确定一种算法是否比另一种算法渐近快?假设一个等式是t(n)= 7t(n / 2)+ n ^ 2,另一个是t(n)= aT(n / 4)+ n ^ 2。你如何确定该等式的哪个值比第一个更快。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我不是分析算法性能的专家,但是......
渐近地,您可以使用这两个术语中最大的一个来确定算法的增长。因此,您必须确定“a”的值,这会导致第一个项的增长率高于第二个项,但由于我们也将此与第一个项进行比较,因此它必须具有比它更高的增长率。同样。根据主定理,那将是n log b a > F(N)。
使用示例中的值f(n)= n 2 ,b = 4.所以你必须解决Log 4 a> Log 2 7> 2表示。这是约。 48.5
编辑: 这不是我作为一个来源使用的,但我决定做一些谷歌搜索找到一个支持性的来源。 https://math.dartmouth.edu/archive/m19w03/public_html/Section5-2.pdf