gpt4 book ai didi

algorithm - 分析算法 - 为什么只有时间复杂度?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:47 24 4
gpt4 key购买 nike

我正在学习算法和时间复杂度,这个问题突然出现在我的脑海中。

为什么我们只分析算法的时间复杂度?

我的问题是,难道不应该有另一个指标来分析算法吗?假设我有两个算法 A 和 B。

A 100 个元素耗时 5s,​​B 100 个元素耗时 1000s。但是两者都有O(n)时间。

所以这意味着 A 和 B 的时间增长都慢于 cn增长两个独立常量 c=c1c=c2 .但以我对算法的非常有限的经验,我们总是忽略这个常数项而只关注增长。但是,在我给出的 A 和 B 示例之间进行选择时,这不是很重要吗?这边c1<<c2所以算法 A 比算法 B 好得多。

还是我在早期阶段想得太多,稍后才会进行适当的分析?它叫什么?

或者我的整个时间复杂度概念是错误的,在我给出的例子中两者都不能有 O(n)时间?

最佳答案

我们担心增长的顺序,因为它为算法的行为提供了有用的抽象,因为输入大小趋于无穷大。

O 符号“隐藏”的常量很重要,但它们也难以计算,因为它们取决于以下因素:

  • 用于实现算法的特定编程语言
  • 正在使用的特定编译器
  • 底层 CPU 架构

我们可以尝试估计这些,但总的来说这是一个失败的原因,除非我们做出一些简化的假设并在一些定义明确的计算模型上工作,比如 RAM模型。

但是,我们又回到了抽象的世界,正是我们开始的地方!

关于algorithm - 分析算法 - 为什么只有时间复杂度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15576730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com