妙な処理ですが、トレースすれば明確になります。
面倒なので交換処理が発生する都度出力してみました。
swap(?)の数字は j の値です。
?\u0026gt; に続く要素10個は交換処理後の状態です。
※ swap(1)は、a[1], a[2] とが入換えた結果となります。
※ swap(8)が折返しですね
初期状態 0\u0026gt; 7 22 11 34 17 52 26 13 40 20
swap(1): 1\u0026gt; 7 11 22 34 17 52 26 13 40 20
swap(3): 2\u0026gt; 7 11 22 17 34 52 26 13 40 20
swap(5): 3\u0026gt; 7 11 22 17 34 26 52 13 40 20
swap(6): 4\u0026gt; 7 11 22 17 34 26 13 52 40 20
swap(7): 5\u0026gt; 7 11 22 17 34 26 13 40 52 20
swap(8): 6\u0026gt; 7 11 22 17 34 26 13 40 20 52
swap(8): 7\u0026gt; 7 11 22 17 34 26 13 20 40 52
swap(6): 8\u0026gt; 7 11 22 17 34 13 26 20 40 52
swap(5): 9\u0026gt; 7 11 22 17 13 34 26 20 40 52
swap(4): 10\u0026gt; 7 11 22 13 17 34 26 20 40 52
swap(3): 11\u0026gt; 7 11 13 22 17 34 26 20 40 52
★ 12\u0026gt; 7 11 13 22 17 34 26 20 40 52
━━