Помогите, пожалуйста, рассчитать число повторов строчки в коде
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 будет срабатывать каждый раз.
На случайных данных будет меньше.