该二分查找采用的是非递归的方式
代码实现:
public class BinarySearchNoRecur {
public static void main(String[] args) {
int[] arr={1,3,4,7,9,13,15,17};
int target=9;
System.out.println(binarySearchNoRecur(arr,target));
}
//二分查找的非递归实现
/**
* @param arr 待查找的数组
* @param target 要寻找的目标
* @return 返回对应的下标,没有返回-1
*/
public static int binarySearchNoRecur(int[] arr,int target){
int left=0;
int right=arr.length-1;
while(left<=right){
int mid=(left+right)/2;
if(arr[mid]==target){
return mid;
}else if(arr[mid]<target){
left=mid+1;
}else{
right=mid-1;
}
}
return -1;
}
}