сложность времени, Java - PullRequest
       33

сложность времени, Java

0 голосов
/ 08 ноября 2019

Пожалуйста, посмотрите код, который я написал на основе школьного примера.

public class Test {
public static void main(String [] args)
{
    int number = 0;
    int [] array = new int[number+1];
    array[number] = 0;
    methodName(number, array);
}

public static void methodName(int n, int[] b )
{
    if (n == 0)
    {
        System.out.println(" b is : " + b);
        return;
    }
    else
    {
        b[n-1] = 0;
        methodName(n-1, b);
        b[n-1] = 1;
        methodName(n-1, b);
    }
}
}

Я пытаюсь вычислить временную сложность этого кода в лучшем и худшем случаях. Насколько я понимаю, лучшим вариантом будет O (1). И мне трудно определить худший случай. В цикле else есть четыре основных операции. Я знаю, что это прогрессирующая функция, и я чувствую, что она близка к O (! N).

Спасибо за потраченное время.

1 Ответ

0 голосов
/ 08 ноября 2019

ЕСЛИ methodName не вызывается из другого места, кроме main, то это всегда будет O (1)

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