You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Big O复杂度O(a*b)命名咨询:它属于线性还是多项式复杂度?

O(a*b)复杂度的定义与分类

名称与所属类型

  • O(a*b)一般直接称为双变量乘积复杂度,也可归类到多项式复杂度范畴。
  • 它不属于线性复杂度(线性复杂度是O(n),仅单个变量的线性增长),而多项式复杂度包含所有变量的多项式组合形式,a和b是两个独立输入变量,它们的乘积属于二元多项式项,因此符合多项式复杂度的定义。

与二次复杂度O(n²)的区别

二次复杂度O(n²)是针对单一变量的平方级增长,比如嵌套循环都依赖同一个变量n(外层循环n次,内层也循环n次)。而你的代码中,外层循环次数由a决定,内层由独立变量b决定,二者没有绑定关系,因此不能用O(n²)描述,必须用O(a*b)来准确表示。

正如你学习的课程指出:当嵌套循环基于两个不同的独立变量时,复杂度是两个变量的乘积,而非单变量的平方。

对应代码示例

function twoInputsMult(a, b) {
    for (let i = 0; i < a; i++) {
        for (let j = 0; j < b; j++) {
            // do something
        }
    }
}

内容的提问来源于stack exchange,提问作者Nugget

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:36:27