input:  A = [4 1 3 2 16 9 10 14 8 7]
floor(n/2) = 5, so the loop runs i = 5, 4, 3, 2, 1

  i = 5, A[5] = 16
      after this call: A = [4 1 3 2 16 9 10 14 8 7]
  i = 4, A[4] = 2
      swap A[4] with A[8] -> A = [4 1 3 14 16 9 10 2 8 7]
      after this call: A = [4 1 3 14 16 9 10 2 8 7]
  i = 3, A[3] = 3
      swap A[3] with A[7] -> A = [4 1 10 14 16 9 3 2 8 7]
      after this call: A = [4 1 10 14 16 9 3 2 8 7]
  i = 2, A[2] = 1
      swap A[2] with A[5] -> A = [4 16 10 14 1 9 3 2 8 7]
      swap A[5] with A[10] -> A = [4 16 10 14 7 9 3 2 8 1]
      after this call: A = [4 16 10 14 7 9 3 2 8 1]
  i = 1, A[1] = 4
      swap A[1] with A[2] -> A = [16 4 10 14 7 9 3 2 8 1]
      swap A[2] with A[4] -> A = [16 14 10 4 7 9 3 2 8 1]
      swap A[4] with A[9] -> A = [16 14 10 8 7 9 3 2 4 1]
      after this call: A = [16 14 10 8 7 9 3 2 4 1]

result: A = [16 14 10 8 7 9 3 2 4 1]
exchanges performed: 7

         n     exchanges   exchanges/n   (n lg n)/n = lg n
      1000           742         0.742             9.000
     10000          7469         0.747            13.000
    100000         74242         0.742            16.000
   1000000        743123         0.743            19.000
  10000000       7440513         0.744            23.000
