二分查找,也叫折半查找
先排序,对排好序的数组进行查找
使用两个指针,一个指第一个元素,一个指最后一个元素
int left=0;
int right=nums.length-1;
然后取他们的中间值
int mid=(left+right)>>1
让目标值和temp比较
目标值大于temp,证明在temp的右边,left=temp+1
否则right=temp-1
left和right重合是最后一次和目标值比较
public int test(int[] nums,int key){
Arrays.sort(nums);
int left=0;
int right=nums.length-1;
while(left<=right){
int mid=(left+right)>>1;
if(nums[mid]==key){
return mid;
}else if(nums[mid]>key){
right=mid-1;
}else{
left=mid+1;
}
}
return -1;
}