二分查找Java实现
解题思路
标签:二分查找
过程:
设定左右指针
找出中间位置,并判断该位置值是否等于 target
nums[mid] == target 则返回该位置下标
nums[mid] > target 则右侧指针移到中间-1
nums[mid] < target 则左侧指针移到中间+1
时间复杂度:O(logN)
class Solution {
public int search(int[] nums, int target) {
int left = 0;
int right = nums.length;
int middle = left+(right-left)/2;
while(right>left){
if(target==nums[middle]){
return middle;
}
if(target>nums[middle]){
left=middle+1;
}
if(target<nums[middle]){
right=middle-1;
}
}
return -1;
}
}