Итак, что действительно заставило меня споткнуться здесь, так это то, что когда я попытался вычислить временную сложность этого алгоритма, меня смутил тот факт, что есть 3 цикла, которые заставили бы меня поверить в то, что операции O (n ^ 3). ) но дело в том, что средний цикл уменьшается при увеличении внешнего цикла, а самый внутренний цикл увеличивается при уменьшении среднего цикла. Я бы очень предположил, что это общий алгоритм O (n ^ 2), но он все еще кажется O (n ^ 3) из-за 3-х вложенных циклов.
При подсчете количества операций во время выполнения кода я получаю подсчет где-то между O (n ^ 2) и O (n ^ 3), что делает его еще более неприятным ...