Общая сложность: O (конец - начало) * sqrt (конец)) . FYI: Я показываю вам альтернативную оценку, которая не так точна:
В O -нотации вас интересует худший случай, поэтому мы можем предположить, что start
всегда равно 0
. Теперь для анализа нам понадобится только end
.
Метод printPrimeSeries
- это просто O (конец) , от 0
до end
. Метод использует findPrimeOrNot
, который выполняет итерацию от 2
до Math.sqrt(n)
, что составляет O (sqrt (n)) . Максимальное значение для n
- это значение end
, поэтому для наших целей мы можем назвать сложность O (sqrt (end)) . Объединение обоих: O (конец) * O (sqrt (end)) , что всего лишь O (end sqrt (end)) .
Есть интересные детали к вопросу о распределении простых чисел. Об этом можно прочитать здесь .