при решении прог. задача с пузырьковой сортировкой я столкнулся с проблемой. Итак, мне нужно посчитать количество перестановок в массиве и количество проходов через массив. На самом деле, есть выход. В моем коде массив сортируется правильно, но счетчики работают неправильно.
step = int(input())
a = list(map(int, input().split()))
passage_number = 0
swap_number = 0
for x in range(step):
for i in range(step-x-1):
passage_number += 1
if a[i] <= a[i+1]:
a[i], a[i+1] = a[i+1], a[i]
swap_number += 1
print(passage_number, swap_number)
Пример ввода (две строки) и вывод:
8
3 1 4 1 5 9 2 6
5 8
(теперь он возвращает что-то вроде "21 14" и c, зависит от положения переменных)
Я думаю, что проблема в неправильной переменная позиция, но я не могу решить эту легкую проблему в течение 6 часов. Я пытался установить переменные в разных позициях и срок действия переменной 'step', но все попытки были безуспешными. Я буду очень признателен, если вы покажете мне, что я должен изменить в своем коде, чтобы решить эту проблему (внезапно Google не отвечает, кстати: D)