Сложность работает так, что общая сложность для всей программы является наихудшей сложностью для любой части.Итак, в вашем случае у вас есть часть, которая возводит числа в квадрат, и у вас есть часть, которая сортирует числа.Итак, какая часть определяет общую сложность?
Квадратная часть - это o (n), потому что вы только касаетесь элементов один раз, чтобы их возвести в квадрат.
Как насчет сортирующей части?Обычно это зависит от того, какую функцию сортировки вы используете:
- Большинство процедур сортировки имеют O (n * log (n)), потому что они используют алгоритм «разделяй и властвуй».
- Некоторые (например,пузырьковая сортировка) имеют O (n ^ 2)
- Некоторые (например, счетная сортировка) имеют O (n)
В вашем случае говорят, что данное решение является O (n * log (n)) и поскольку квадратная часть равна O (n), то сортирующая часть должна быть O (n * log (n)).И так как ваш код использует ту же функцию сортировки, что и данное решение, ваша сортировка также должна быть O (n * log (n))
Таким образом, ваша квадратичная часть - O (n), а ваша сортирующая часть - O (n* log (n)), и общая сложность является худшей из них: O (n * log (n))