Если у вас есть N
элементов, средний элемент обычно определяется как элемент по индексу N/2
(на основе 0).
10 items
0,1,2,3,4,5,6,7,8,9
|
5
13 items
0,1,2,3,4,5,6,7,8,9,0,1,2
|
6
Как правило, если вам нужно найти середину между индексами low
(включительно) и high
(исключительно), математически это int mid = (low + high) / 2
. Но из-за арифметического переполнения целочисленного числа с ограниченной точностью правильная формула имеет вид int mid = (low + high) >>> 1;
Смотри также
- Сообщение блога Google Research от Джоша Блоха