算法分析 : In practice, 高阶项的系数重要吗?

标签 algorithm computer-science

考虑 an^2 + bn + c。我知道对于大的 nbnc 变得微不足道。

我还了解到,对于较大的 n2n^2n^2 之间的差异非常微不足道 n^2n*log(n) 之间的区别。

不过,2n^2n^2还是相差2阶。这在实践中重要吗?或者人们只是考虑没有系数的算法?为什么?

最佳答案

如果您对时序感兴趣,则实际系数很重要。但 big-O 实际上与时间无关,它与可扩展性有关。当您看到一个描述为 O(n^2) 的算法时,您并不知道在特定计算机上使用特定编译器以特定语言解决大小为 n 的问题需要多长时间,但您知道大小为 2n 的问题大约需要 4 倍的时间。

可以忽略系数的原因是,如果考虑不同规模问题的比率,低阶项的系数渐近占优,而最高阶项的系数在比率中抵消。

关于算法分析 : In practice, 高阶项的系数重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220910/

相关文章:

字符串排列秩+数据结构

python - 合并三个排序列表的递归 Python 程序

javascript - 如何编写 100% 纯记忆化功能?

algorithm - 为家庭创造一个家务轮

javascript - 反向数组不包含每个元素

python - 计算倒数 : n**(-1) or (1/n)?

javascript - 是什么阻碍了代码每次都以相同的持续时间执行?

c - 微 Controller 上的 Ascii 字符串加密

java - 如何获取 Java 数组中定义可用空间开始和结束的索引

python - 将元素汇总到某个索引并覆盖该值