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