问题描述
如果某些机器学习算法的时间复杂度,例如; 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
的情况下,您无法谈论此时间复杂度。