VladimirovnaKashintsev1151
?>

. Вырав в указанных на верен, сонау еп pe5 -6 - а за -5 - смКак узать eropony проутоа?​

Информатика

Ответы

Freelifecool797
Назовём инверсией пару элементов массива, в котором элемент с меньшим номером больше элемента с большим номером. Заметим, что после каждого обмена число инверсий в массиве уменьшается на 1. Тогда, посчитав число инверсий до работы программы и после, и вычтя из первого второе, мы получим число операций обмена.

Массив небольшой, и можно подсчитывать инверсии как угодно.

python 3.5:
before = [13, 18, 7, 4, 10, 14, 15, 17, 2, 5, 9, 16, 11, 3, 20, 6, 19, 12, 8, 1] 
after =  [4, 7, 2, 5, 10, 9, 13, 11, 3, 14, 6, 15, 12, 8, 1, 16, 17, 18, 19, 20]
 
def countInversions(arr):
  counter = 0
  for i in range(len(arr) - 1):
    for j in range(i + 1, len(arr)):
      if arr[i] > arr[j]:
        counter += 1
  return counter
  
print(countInversions(before) - countInversions(after))

ответ: 60.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

. Вырав в указанных на верен, сонау еп pe5 -6 - а за -5 - смКак узать eropony проутоа?​
Ваше имя (никнейм)*
Email*
Комментарий*