Возможно ли, чтобы алгоритм / программа имели одинаковое время наихудшего и наилучшего случая?
Например:
public static int factorial(int number)
{
factorial = 1;
for (i = 1; i <= number; i++)
factorial = factorial * i;
}
Это программный сегмент для факториальной проблемы, и я пытался решить из-за сложности времени. Кажется, у него нет худшего и лучшего случая, так как какой бы ввод у вас ни был, он все равно будет проходить через остальную часть кода, в отличие от тех, у вас есть операторы if-else.
Если это так, то должен ли я предположить, что из того, что я получу из этого кода, это будет лучшее, худшее и среднее время обращения?
Правильно ли я понял?
public static int factorial(int number)
{
factorial = 1; // 1
for (i = 1; i <= number; i++) // 1+3n
factorial = factorial * i; // 2
return factorial; // 1
}
Худший случай / Лучший случай:
3n + 5
Большой - O:
О (п)