第2次循环
arr
(right + left) >> 1
第3次循环
left
2
21
23
28
32
38
45
59
66
76
0
1
3
4
5
6
7
8
9
right
10
因为 arr[mid] < target所以 left = mid + 1
目标索引 6
i
第1次循环
因为 arr[mid] < target所以 left = mid + 1
因为 arr[mid] > target所以 right = mid
target
mid
因为 arr[mid] = target所以 return mid
初始值 0
left/mid
指针
初始值arr.length