看到有序就要想到二分查找
寻找中心点
//个数是奇数,下面两个效果一样,都是最中间的中心点。
left + (right - left)/2 //个数是偶数,表示左边值较小的中心点。
left + (right - left+1)/2 //个数是偶数,表示右边值较大的中心点。
数组调用二分查找的API
- Arrays.binarySearch(数组,key)
key是需要查找的值。
返回值大于等于0,即key的下标。
返回值小于0,不存在key值。 - Arrays.binarySearch(数组,left,right,key)
相比于上面的方法限定了搜索范围(左闭右开)
left:二分查找的起点,包括
right:二分查找的结尾,不包括