0 java algorithm big-o analysis execution
(在任何人说什么之前是的,这是家庭作业,但我已经把它打开并且已经把它拿回来了,我只是想明白这个用于测试.)
问题是计算代码片段的执行时间和大O. 我可以计算出大的O,但我不知道如何确定执行时间.好吧基本上我不明白的是如何计算执行时间
for(i=0; i < n; i++){
SomeJavaStatment;
for(j=0; j < 2 * n; J+= 2){
SomeJavaStatment;
SomeJavaStatment;
}
}
Run Code Online (Sandbox Code Playgroud)
正确答案是Big O(n ^ 2)我说得对,但我不知道执行时间是什么,正确的答案是4n ^ 2 + 5n + 2.
如果有人能解释我将如何得到答案,我将不胜感激.
我不认为,执行时间应该确定,但是:
//assignment to i takes 1 operation
for(i=0; i < n; i++){ // i++ is executed n times, i < n is executed (n+1) times
SomeJavaStatment; // n times
//assignment to j takes 1 operation
for(j=0; j < 2 * n; j+= 2){ // j+=2 is executed n*n times, j < 2*n is executed n*(n+1) times
SomeJavaStatment; // n * n times
SomeJavaStatment; // n * n times
}
}
Run Code Online (Sandbox Code Playgroud)
总共给出1 + n +(n + 1)+ n + n +(n*n)+(n + 1)*n +(n*n)+(n*n)= 4 * n^2 + 5*n + 2:)