отладка кода в Java с помощью NetBeans - PullRequest
0 голосов
/ 17 ноября 2010

Привет Я хочу отладить эти два кода (Фибоначчи с рекурсивной версией, а другой - Фибоначчи с итерационной версией). и я хочу получить разницу между ними о производительности. но я не знаю, как я могу отладить эти коды, пожалуйста, помогите мне спасибо.

Фибоначчи (рекурсия):

public class Two{

    public static void main(String[] args){
        final Two obj = new Two();
        int sum = 0, i = 1;
        obj.fibonacci(i);
        while(obj.fibonacci(i) < 4000001){
            if(obj.fibonacci(i) % 2 == 0){
                sum += obj.fibonacci(i);
            }
            i++;
        }
        System.out.println(sum);
    }

    public int fibonacci(int n){
        if(n == 0){
            return -1;
        }
        if(n == 1){
            return 1;
        }
        if(n == 2){
            return 2;
        } else{
            return fibonacci(n - 1) + fibonacci(n - 2);

        }
    }
}

Фибоначчи (итерация):

    int sum = 0,a=1,b=1,c=a+b;
    while (c<4000000){
        sum +=c;
        a=c+b;
        b=a+c;
        c=a+b;
    }
    System.out.println(sum);

1 Ответ

2 голосов
/ 17 ноября 2010

Перед кодом, производительность которого тестируется, добавьте эту строку:

long start = System.currentTimeMillis();

После того, как код распечатает время, необходимое для выполнения:

System.out.println(System.currentTimeMillis() - start);

Если вы хотите узнать значения вычисления, измените эти строки:

} else {
    return fibonacci(n - 1) + fibonacci(n - 2);
}

в

List<Integer> tempNumbers = new ArrayList<Integer>();
...

} else {
    int result = fibonacci(n - 1) + fibonacci(n - 2);
    tempNumbers.add(result);
    return result;
}

после измеряемого кода распечатайте список:

System.out.println(tempNumbers);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...