python - 所有 O(1) 函数的运行时间完全相同。对或错?

标签 python

<分区>

“所有 O(1) 函数的运行时间完全相同。”对或错?谁能给我解释一下答案?

最佳答案

错了。 O(1) 表示常数时间。这意味着无论输入的大小是多少,函数运行的时间或多或少是相同的 - 运行时间不会随着输入的变化而变化。

这意味着两个复杂度为 O(1) 的函数都将在常数时间内运行,尽管它们的常数可能不同。因此,如果您有两个 O(1) 函数 fg,每个函数计算相同的结果,期望相似的输入(假设它们期望列表,为了讨论),f 的运行时间不依赖于列表的大小; g 的运行时也没有。

但是,如果 f 使用比 g 更复杂(或更耗时)的步骤来计算答案,那么 f' s 运行时间将超过 g - f 终止所需的秒数(我们称此值为 fsec)将更多g 终止所需的秒数(我们称此值为 gsec)。尽管如此,fsecgsec 都不依赖于输入列表的大小——无论输入列表有多大或多小,它们都是相同的——但是 gsec 将始终小于 fsec

这是因为运行时不依赖于输入列表的大小,所以它们被归类为 O(1) 算法 - 不是因为它们执行特定数量的操作。

关于python - 所有 O(1) 函数的运行时间完全相同。对或错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13205215/

相关文章:

python - 如何收紧 'matplotlib' 数字的边界以使其更接近我的轴?

python - 为什么我的 QStandardItemModel itemFromIndex 方法返回 None? (索引无效)

python - 在运行时从 python Literal 类型中获取文字?

python - 如何使其仅在满足我的强制条件时才显示

python - AWS Lambda-API 网关 "message": "Internal server error" (502 Bad Gateway)

python - 如何使用 sympy.printing.mathml 显示希腊字母

python - 使用正则表达式捕获撇号

python - 使用堆栈函数转换 pandas 数据框

python - 如何计算选定范围的平均值?(pandas)

javascript - 在谷歌应用引擎中将数据从javascript发送到python