еще один шаг (или петли в данном случае), в то время:
приращения петли
Первые i
до тех пор, его площадь меньше, чем N
, так что это должно быть O(sqrt N)
, потому int(sqrt(N))
или int(sqrt(N)) - 1
- наибольшее целое значение, квадрат которого меньше N
;
То же самое относится ко второму циклу. Мы можем игнорировать 4
, потому что это константа, и мы не заботимся о тех, кто имеет дело с большими обозначениями. Итак, первые две петли - это O(sqrt N)*O(sqrt N) = O(sqrt(N)^2) = O(N)
. Вы можете умножить сложности, потому что петли вложены, поэтому второй цикл будет полностью выполняться для каждой итерации первого;
Третий цикл, очевидно, O(N^2)
, потому что k
поднимается до площади N
.
Таким образом, все это должно быть O(N) * O(N^2) = O(N^3)
. Обычно вы можете решать такие задачи, вычисляя сложность первого цикла, затем второго, затем первых двух и так далее.
Благодарим вас за подробное объяснение. теперь это имеет больше смысла. – JVTura