Назовём инверсией пару элементов массива, в котором элемент с меньшим номером больше элемента с большим номером. заметим, что после каждого обмена число инверсий в массиве уменьшается на 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.
sov0606332
21.05.2023
Ms dos qbasic 1.0 cls pi = 4 * atn(1) for x = pi / 6 to pi / 3 step pi / 30 y = tan(x) - 2 * x - tan(pi / 6) + pi / 3 print x, y next x результат .5235988 0 .6283185 -6.024725e-02 .7330383 -9.582524e-02 .8377581 -9.505627e-02 .9424778 -3.872636e-02 1.047198 .1075031
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Дан массив a(11 выяснить, является ли он по убывание.язык c++