Решение: Подсчёт перестановок массива
В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 10. Значения элементов равны 0, 8, 4, 3, 10, 7, 2, 1, 5, 9, 6 соответственно, то есть $A[0]=0$, $A[1]=8$ и так далее. Определите значение переменной $s$ после выполнения фрагмента программы.
1A = [0, 8, 4, 3, 10, 7, 2, 1, 5, 9, 6] 2s = 0 3for j in range(10): 4 if A[j] > A[j+1]: 5 s = s + 1 6 t = A[j] 7 A[j] = A[j+1] 8 A[j+1] = t
Решение по шагам
4 шагаИзначально $s=0$. Последовательно сравниваем соседние элементы и при необходимости меняем их местами.
При $j=0$ перестановки нет: $0<8$.
После обработки первых элементов условие $A[j]>A[j+1]$ выполняется при $j=1,2,4,5,6,7,8,9$.
Всего условие выполнено 8 раз, и каждое выполнение увеличивает $s$ на единицу.
$$s=0+8=8$$Где здесь ошибаются
Считать сравнения вместо выполнений условия перестановки.
Не учитывать, что после каждой перестановки изменяются последующие сравнения.
Забыть, что цикл выполняется для $j$ от 0 до 9 включительно.