Не забывайте, O-нотация имеет дело с наихудшей сложностью и описывает целый класс функций. Что касается O-обозначения, следующие две функции имеют одинаковую сложность:
64x^2 + 128x + 256 --> O(n^2)
x^2 - 2x + 1 --> O(n^2)
В вашем случае (и ваш алгоритм, который называется сортировка выбора , выбор лучшего элемента в списке и помещение его в новый список; другие O(n^2)
сортировки включают вставка сортировки и пузырьковая сортировка ), у вас есть следующие сложности:
0th iteration: n
1st iteration: n-1
2nd iteration: n-2
...
nth iteration: 1
Так что вся сложность будет
n + (n-1) + (n-2) + ... + 1 = n(n+1)/2 = 1/2n^2 + 1/2n
, который все еще O(n^2)
, хотя это было бы на нижней стороне этого класса.