Разбейте код на части и найдите время выполнения каждого.
Внешний цикл for - O (n).
Каждый раз, когда вызывается этот цикл, вызывается цикл while.Таким образом, вы умножите сложность двух циклов.
Чтобы выяснить время выполнения цикла while, вам нужно взглянуть на блоки if и else.Если блок if выполняется каждый раз, тогда цикл while будет иметь сложность O (n).Если часть else выполняется каждый раз, тогда цикл while будет иметь сложность O (n ^ 2).
Если мы рассматриваем наихудший случай, вы бы проигнорировали время выполнения блоков if.Таким образом, время выполнения цикла while равно O (n ^ 2), и оно вызывается n раз через внешний цикл for.
Таким образом, время выполнения всего этого должно быть O (n ^ 3).