Алгоритм, который находит максимальный продукт - Анализ - PullRequest
1 голос
/ 03 мая 2020

У меня есть этот код, который вычисляет самый большой продукт, который вы можете найти, используя 3 числа в массиве:

public static int findMaxProduct(int[] arr) {

        int i=0, j=1, f=2;

        int largest = arr[i]*arr[j]*arr[f];
        for(;i<arr.length;) {
            if(largest<arr[i]*arr[j]*arr[f])
                largest = arr[i]*arr[j]*arr[f];

            if(i==arr.length-3)
                return largest;

            if(f==arr.length-1 && j == arr.length - 2) {
                i++;
                j=i+1;
            }
            if( f==arr.length-1 && j != arr.length-2) 
                f = j+1;

            if(f<arr.length-1)
                f++;
            if(f==arr.length -1 && j < arr.length -2)
                j++;




        }
        return 0;
    }

Теперь я не уверен в том, какая это сложность, поскольку мы увеличиваем i если выполняется только условие, и мы не знаем, где оно будет выполняться i++. Буду признателен, если вы поможете мне найти сложность! (Время)

1 Ответ

2 голосов
/ 03 мая 2020

Вы тестируете все тройки. Их около n^3. Поэтому сложность составляет O(n^3).

...