二分查找— I
描述
请实现无重复数字的升序数组的二分查找
给定一个 元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1
解题
Solution
public class Solution {
public static void main(String[] args) {
int[] a={-1,0,3,4,6,10,13,14};
int target=13;
Solution s1 = new Solution();
System.out.println(s1.search(a,target));
}
public int search (int[] nums,int target){
if (nums.length==0) return -1;
int low=0,high=nums.length-1;//注意端点坐标
int mid = 0;
while (low<=high){//循环标志
mid=(low+high)/2;
if (nums[mid]==target) {
return mid;
}else if (nums[mid]<target){
low=mid+1;
}else {
high=mid-1;
}
}
return -1;
}
}