Trace with unordered data { 7, 3, 66, 3, -5, 22, -77, 2}
Outer loop: n = 8, i = 0 to 6, repeat seven times
Inner loop: for j = n(8) - 1 down to i(0) + 1
do if (a[j-1] > a[j]) swap([j-1],a[j])
First pass: { 7, 3, 66, 3, -5, 22, -77, 2}; i = 0; j = 7
Second pass: { 7, 3, 66, 3, -5, -77, 22, 2}; i = 0; j = 6
Third pass: { 7, 3, 66, 3, -77, -5, 22, 2}; i = 0; j = 5
Fourth pass: { 7, 3, 66, -77, 3, -5, 22, 2}; i = 0; j = 4
Fifth pass: { 7, 3, -77, 66, 3, -5, 22, 2}; i = 0; j = 3
Sixth pass: { 7, -77, 3, 66, 3, -5, 22, 2}; i = 0; j = 2
Seventh pass: { -77, 7, 3, 66, 3, -5, 22, 2}; i = 0; j = 1
Second pass: { -77, -5, 7, 3, 66, 3, 2, 22}; i = 1; j = 7 down to 2
Third pass: { -77, -5, 2, 7, 3, 66, 3, 22}; i = 2; j = 7 down to 3
Fourth pass: { -77, -5, 2, 3, 7, 3, 66, 22}; i = 3; j = 7 down to 4
Fifth pass: { -77, -5, 2, 3, 3, 7, 22, 66}; i = 4; j = 7 down to 5
Sixth pass: { -77, -5, 2, 3, 3, 7, 22, 66}; i = 5; j = 7 down to 6
Seventh pass: { -77, -5, 2, 3, 3, 7, 22, 66}; i = 6; j = 7 down to 7