我想用
找到算法的大O符号复杂度T(N) = 16N+8N^2+N^2log(N)+6NK+5N^2K-5NK^2
请注意,K,N
是K<=N
那会是什么?
UPDATE
K,N
都是算法的输入。
答案 0 :(得分:1)
答案是来自O(N^3)
字词的5N^2K
。
以下是答案的原因:
16N
是O(N)
8N^2
是O(N^2)
N^2 log(N)
是O(N^2 Log(N))
6NK
为O(N^2)
,K
为O(N)
5N^2K
为O(N^3)
(与K
相同的原因)-5NK^2
也是O(N^3)
,因为K
可能是否定的
自5N^2K
以来K<=N
始终不会取消之前的O(N^3
。最高顺序为T
),因此可以回答。
如果N
同时包含K
和T(N,K)
(例如K
),O(N)
不是O(N^2 K)
,则回答K<N
如果O(N^2 log(N))
为N==K
和$httpBackend.whenGET('https://api.github.com/user/repos', undefined, {
Authorization: "Basic " + btoa("xxxxx:xxxx"),
Accept: "application/json;odata=verbose"
}).respond(function(){ return [200,[{foo: 'bar' }]]});
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.>
com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2
。
答案 1 :(得分:0)
如果N和K都是输入,则大O将是两个输入的函数。
由于给定K <= N,对于K和N的所有值,复杂度将是O((N ^ 2)* K),因为这是其余部分中的渐近项中的最高项。 但是对于像N = K这样的特殊情况,它可以写成O(N ^ 3)或O(K ^ 3)。