假设我们有这两种方法:
void example(int p){
p += 10;
p = exampleTwo(p);
}
int exampleTwo(int p){
int pp = 0;
for(int i = 0; i < p; i++){
pp++;
}
return pp;
}
Run Code Online (Sandbox Code Playgroud)
该方法exampleTwo具有线性运行时.它的运行时间是O(n).
那么,example考虑到它调用的方法,该方法的大O符号是什么exampleTwo?
我想它也是O(n),但我不确定.
example()没有循环,它不做任何额外的事情,exampleTwo()因此它具有相同的复杂度,即O(n), as exampleTwo()。
如果example()改成这样:
int example(int p){\n int sum = 0;\n for(int i=0; i<p; ++i){\n sum += exampleTwo(p);\n }\n return sum;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n那么现在的复杂性是O(n\xc2\xb2):随着p变得更大,要做的工作量会以 的平方增加p。
| 归档时间: |
|
| 查看次数: |
958 次 |
| 最近记录: |