n We are guaranteed that
for 0 <= i < mid
  list.get(i) < item
n After the assignment, low equals mid+1
and so
for 0 <= i < low
  list.get(i) < item
n This is true before the loop body is done:
for high < i < list.size(
  list.get(i) >= item