Я студент информатики, и мне нужно написать анализ, выполненный с использованием различных алгоритмов больших О. Чтобы облегчить нам, наш профессор дал нам несколько методов, чтобы переопределить, чтобы контролировать время наших реализаций.
Первый метод должен содержать реализацию проанализированного алгоритма Big O, а второй - стандартную «контрольную» строку.
Например, квадратик c время :
public void method1(int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
analyser();
}
}
}
Управление:
public int method2(int n) {
return n*n;
}
Теперь для логарифми c функция:
public void method1(int n) {
for (int i = 1; i < n; i = i*2) {
analyser();
}
}
@Override
public int method2(int n) {
return (int) Math.log(n);
}
К сожалению, второй метод возвращает бесконечные значения, и я не могу понять, почему. Есть ли другие простые вычисления, которые я мог бы использовать вместо Math.log(n)
, чтобы использовать в качестве «контроля» для сравнения времени двух методов? Спасибо.