就大 O 符号而言,O(N*P) 是什么类别,P 表示特征大小,如朴素贝叶斯或 kNN 中所见?

问题描述

如果某些机器学习算法的时间复杂度,例如; kNN 和朴素贝叶斯可以定义为 O(N*P),其中 N 是行数,P 是特征大小,这算什么 Big O 复杂度?

O(N*P) 时间复杂度是否与 O(N) 属于同一类别,因此它是“线性复杂度”吗?如果 P=N 为真,它是否也不能算作 O(N^2) 因此二次复杂度?那么,究竟我们可以称之为什么复杂性,它是未确定的吗?谢谢。

解决方法

正如你所说,这取决于P的值。因此,时间复杂度一般为 O(N*P),当我们对 P 的值了解更多时,您可以更详细地解释它。对于您提到的另一个示例,如果 P = N^2,则时间复杂度也可以是 Qubic。因此,在不了解 P 的情况下,您无法谈论此时间复杂度。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...