Обычный выбор сортировки требует O(n^2)
сравнений.
При каждом запуске он делает K сравнений, где K n-1, n-2, n-3...1
, а сумма этой арифметической прогрессии (n*(n-1)/2)
Ваш подход (если вы используете оптимизированную схему выбора минимума / максимума) использует 3/2*K
сравнений за цикл, где длина цикла K равна n, n-2, n-4...1
Сумма арифметической прогрессии с a (1) = 1, a (n / 2) = n, d = 2 вместе с множителем 3/2 равна
3/2 * 1/2 * (n+1) * n/2 = 3/8 * n*(n+1) = O(n^2)
Таким образом, сложность остается квадратичной (и коэффициент очень близок к стандартному)