我正在学习算法和时间复杂度,这个问题突然出现在我的脑海中。
为什么我们只分析算法的时间复杂度?
我的问题是,不应该有另一个指标来分析算法吗?假设我有两个算法 A 和 B。
A 需要 5s 处理 100 个元素,B 需要 1000s 处理 100 个元素。但两人都有O(n)
时间。
所以这意味着 A 和 B 的时间都比cn
两个单独的常数c=c1
和的增长慢c=c2
。但在我非常有限的算法经验中,我们总是忽略这个常数项,只关注增长。但是,在我给定的 A 和 B 示例之间进行选择时,这不是很重要吗?在这里c1<<c2
,所以 Algo A 比 Algo B 好得多。
还是我在早期阶段想得太多,稍后会进行适当的分析?这叫什么?
或者我的时间复杂度的整个概念是错误的,在我给定的例子中,两者都没有O(n)
时间?