大哦计算 [英] Big Oh Computation
问题描述
Good Day,
给出以下伪代码:
<br />main()<br />{<br />for(int i=0;i<n;i++)><br />{<br />x[i]=func1(func2(x[i]));<br />}<br />}<br /><br />func1(x[])<br />{<br />for(int i=0;i<length(x);i++)><br />//Do something here<br />}<br /><br />func2(x[])<br />{<br />for(int i=0;i<length(x);i++)><br />//Do something here<br />}<br />
如何计算渐近符号?我知道main()中的循环为O(n),func1和func2均为O(n).但是,我该如何结合这三个呢?我什至可以将3结合起来得到O(N ^ 3)吗?还是只有O(3N)?
谢谢! :)
Good Day,
Given a pseudo code below:<br />main()<br />{<br />for(int i=0;i<n;i++)><br />{<br />x[i]=func1(func2(x[i]));<br />}<br />}<br /><br />func1(x[])<br />{<br />for(int i=0;i<length(x);i++)><br />//Do something here<br />}<br /><br />func2(x[])<br />{<br />for(int i=0;i<length(x);i++)><br />//Do something here<br />}<br />
How can I compute for the Asymptotic notation? I know that the loop in main() is O(n) and both func1 and func2 are O(n). But How can I combine the 3? Can I even combine the 3 to get O(N^3)? or it will be just O(3N)?
Thanks! :)
推荐答案
您对此的分析是什么?
What would be your analysis of this?
<br />main()<br />{<br /> for(int i=0;i<n;i++)><br /> {<br /> for(int j=0;j<n;j++)><br /> {<br /> for(int k=0;k<n;k++)><br /> {<br /> // do the something from func2<br /> }<br /> // do the something from func 1<br /> }<br /> }<br />}<br />
嗯,更好.
Ah, better.
这篇关于大哦计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!