В коде
Вы видите, что внутренний цикл всегда повторяется в один раз меньше, чем раньше.
Это потому, что в пузырьковой сортировке в конце каждой итерации максимальный элемент в массиве от 0 до (N - i)
(где N = размер массива, а i - номер итерации, учитывая, что он варьируется от 1 до N), устанавливается в его фактическое положение
Давайте рассмотрим пример массива A = {2, 5, 6, 1, 9, 8}
после 1-й итерации
A = {2, 5, 1, 6, 8, 9}
после 2-й итерации
A = {2, 1, 5, 6, 8, 9}
после 3-й итерации
A = {1, 2, 5, 6, 8, 9}
после 4-й итерации
A = {1, 2, 5, 6, 8, 9}
после 5-й итерации
A = {1, 2, 5, 6, 8, 9}
Как видите, после 1-й итерации 9 - самый высокий элемент, находится в правильной позиции
Аналогично во 2-й итерации 8 есть, в 3-й итерации 6 есть и т. Д.
Надеюсь, это было полезно.