is the Big-O for this O(1) or some asymptotic like 1/n?
Saying that because if it defaults, the time limits at about 1000000 ns, but if it returns while in the loop, it is about a fraction of that. The time seems to increase very slightly as the inputs increase.
public static int[] call(int b, int c) {
int[] f = new int[2];
final double n = 1.13;
for (int x = -100; x < 100; x++) {
for (int y = -100; y < 100; y++) {
if (((n+x)*(n+y)) == ((n*n)+(b*n)+c)) {
f[0] = x;
f[1] = y;
return f;
}
}
}
return f;
/* // timer method
* long startTime = System.nanoTime() ;
* call();
* long endTime = System.nanoTime() ;
* long totalTime = endTime - startTime;
* System.out.println(totalTime);
*
* f(2, 1) : 499284
* f(4, 4) : 487452
* f(6, 9) : 501479
* f(8, 7) : 493296
* f(10, 21) : 500602
* f(12, 36) : 505862
*
*/
}
Also, please ignore that the code is wonky.