Ваш первый цикл for
повторяется n
раза (от 0
до n - 1
), поэтому его временная сложность составляет O (n) (постоянные значения опущены).
Второй повторяет также и n
раз, но он делает это для каждой итерации первого цикла.
Это делает его O (n * n) всего пока.
Тогда самый внутренний цикл for
повторяется j
раз, что в худшем случае равно n
, поэтому он повторяется n
раз, и это делает первый блок цикла вложенности сложным по временииз O (n * n * n) = O (n ^ 3) .
Следующий блок является отдельным.Это время сложность не будет умножена на первое, оно будет добавлено вместо этого.
Его первый цикл имеет сложность O (n * n) из-за итерации, пока q < n * n
.Для каждой из его итераций внутренний цикл выполняется и выполняется q
раз, что составляет O (n * n - 1) = O (n * n) в худшем случае (последняя итерация).
Если мои расчеты верны (я не знаю, пожалуйста, просмотрите их и предложите внести изменения), тогда код имеет временную сложность
O (n ^ 3)+ O (n ^ 2 * n ^ 2) = O (n ^ 3) + O (n ^ 4) = O (n ^ 4)