二分法
在刷力扣的数组专题过程中,二分法是一个十分重要的一个算法。
二分法的原理:
在有序数组中不断查询区间中间位置的元素与目标数比较,若查询元素小于目标数,则缩窄右区间,查询元素大于目标数,缩窄左区间,直到查询到目标数为止。
作为最基本查找目标数索引的二分法代码如下;
public int find(int[] nums,int target){
int left = 0;
int right = nums.length - 1;
while(left <= right){
//左闭右闭区间
int mid = left + (right - left) / 2 ;
if(nums[mid] == target){
return nums[mid];
}else if(nums[mid] < target){
left = mid +