折半查找(二分查找)是一种算法,其输入是一个有序的元素列表(必须是有序的),如果查找的元素包含在列表中,则返回其位置,否则返回NULL
代码实现:
public static int binarySearch2(int[] nums, int target) {
if (null == nums || nums.length == 0) { return -1; }
int left = 0;
int right = nums.length - 1;
while (left < right) {
int mid = (left + right) >> 1;
if (nums[mid] < target) {
left = mid + 1;
} else {
right = mid;
}
}
return nums[left] == target ? left : -1;
}