Есть две простые вещи, которые вы можете сделать, чтобы помочь вам проанализировать сложность вашей функции.Первый - упростить ввод и посмотреть, как ведет себя функция.Вместо запуска функции для большого количества курсов или расписаний или чего-то еще, посмотрите, что она делает только для одного.Сколько шагов нужно, чтобы обработать один курс?Сколько на двоих?Три?Четыре?Составьте таблицу с результатами, а затем посмотрите на разницу между одним и двумя курсами, двумя и тремя, тремя и четырьмя и т. Д. Вы видите шаблон?
Второе, что вы можете сделать, это сломатьразбить на части и проанализировать части по отдельности.Вы, вероятно, не сможете просто увидеть сложность всего этого, потому что, ну, в общем, сложный .Так что упростите это ... какова сложность внутреннего цикла?Как насчет второго внутреннего цикла, игнорируя самый внутренний?Какова сложность двух вместе?Промыть и повторить.