Algorithm 需要帮助渐近分析吗

Algorithm 需要帮助渐近分析吗,algorithm,asymptotic-complexity,Algorithm,Asymptotic Complexity,在渐近分析中,我们总是讨论大于常数值的输入大小。这些大的输入可能永远不会提供给您的软件,而渐进较慢的算法对于您的特定情况总是表现得更好。因此,对于您的软件,您可能最终选择了一种渐进较慢但较快的算法。这意味着什么?对于常量值在您的上下文中的含义,请比较这两种算法的渐近分析结果: Algorithm A -> O(5*n^2) Algorithm B -> O(2^n) 现在,为了更好地理解,请检查它们是如何增加的: n | Algorithm A | Algorithm B 1 |

在渐近分析中,我们总是讨论大于常数值的输入大小。这些大的输入可能永远不会提供给您的软件,而渐进较慢的算法对于您的特定情况总是表现得更好。因此,对于您的软件,您可能最终选择了一种渐进较慢但较快的算法。这意味着什么?

对于常量值在您的上下文中的含义,请比较这两种算法的渐近分析结果:

Algorithm A -> O(5*n^2)
Algorithm B -> O(2^n)
现在,为了更好地理解,请检查它们是如何增加的:

n | Algorithm A | Algorithm B
1 | 5           | 2
2 | 20          | 4
3 | 40          | 9
4 | 90          | 16
5 | 125         | 32
6 | 180         | 64
7 | 245         | 128
8 | 320         | 256
9 | 405         | 512 <-- Threshold
10| 500         | 1024
您可以将这些数字视为运行算法所花费的时间,数字越小表示算法越快。如您所见,当n=9时,算法B的结果将比算法A差。因此,对于较大的输入,算法A的效果更好。在您的问题上下文中,常量值表示一个像9这样的数字,它创建了用于比较算法的阈值


作为旁注,当您渐进地分析算法时,分析结果中总是有一个常数,例如C乘以,例如OC*n^2。如果输入数据较小,此常量值通常会对选择更适合的算法产生重大影响。只是不要将这个常量值与您的问题上下文中的常量值弄错。

这意味着您应该测试并看看什么最适合您的特定情况。这里所指的常量值是什么?@sauravism这意味着如果输入很小,渐近分析结果将不准确。身材矮小通常取决于你的问题。