Помогите, пожалуйста, рассчитать число повторов строчки в коде

def SelectionSort(A):
    for i in range(len(A) - 1):
        minimum = i
        for j in range(i + 1, len(A)):
            if A[j] < A[minimum]:
                minimum = j
        A[i], A[minimum] = A[minimum], A[i]
    return A
list2 = [5, 4, 3, 2, 1]
SelectionSort(list2)
print(list2)

Подскажите, пожалуйста, чему равно число повторов строчки minimum = j. А то во всех строчках все ясно при любом i (например, во внешнем цикле for число повторов равно n, во внутреннем - сумма n - i от i = 1 до n - 1). А вот в этой строчке у меня получается, что, чтобы рассчитать общее число повторов, нужно сначала рассчитывать при четных i, потом при нечетных, еще и округления. Заранее спасибо.


Ответы (1 шт):

Автор решения: MBo

Это неизвестно.
Точнее - зависит от набора данных.
Если данные уже отсортированы - эта строка вообще ни разу не вызовется.
Если в обратном порядке - порядка n^2/2 раз исполнится - if будет срабатывать каждый раз.
На случайных данных будет меньше.

→ Ссылка