计算复杂度取决于两个变量
Computational complexity depending on two variables
我有一个算法,它主要由 k-NN 组成,然后是涉及查找排列的计算,然后是一些 for 循环。一行一行,我的计算复杂度是:
O(n) - for k-NN
O(2^k) - for a part that computes singlets, pairs, triplets, etc.
O(k!) - for a part that deals with combinatorics.
O(k*k!) - for the final part.
K
这里是一个参数,用户可以自己选择,一般来说偏小一些(10-100)。 n
是我的数据集中的示例数量,这可能会变得非常大。
我的算法的总体复杂度是多少?只是 O(n)
吗?
As k <= 100
, f(k) = O(1)
每个函数 f
.
在你的情况下,有一个函数f
使得总时间为O(n + f(k))
,所以它是O(n)
我有一个算法,它主要由 k-NN 组成,然后是涉及查找排列的计算,然后是一些 for 循环。一行一行,我的计算复杂度是:
O(n) - for k-NN
O(2^k) - for a part that computes singlets, pairs, triplets, etc.
O(k!) - for a part that deals with combinatorics.
O(k*k!) - for the final part.
K
这里是一个参数,用户可以自己选择,一般来说偏小一些(10-100)。 n
是我的数据集中的示例数量,这可能会变得非常大。
我的算法的总体复杂度是多少?只是 O(n)
吗?
As k <= 100
, f(k) = O(1)
每个函数 f
.
在你的情况下,有一个函数f
使得总时间为O(n + f(k))
,所以它是O(n)