文章目录
前言
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-search
一、迭代方法(非递归方法)
通过设置数组头尾的两个指针,对数组进行二分查找。
public static int search(int[] nums, int target) {
int low = 0;
int high = nums.length - 1;
while (low <= high){
int mid = (low + high)/2;
if (nums[mid] == target){
return mid;
}else if (nums[mid] < target){
low = mid + 1;
}else {
high = mid - 1;
}
}
return -1;
}
总结
尽量少使用递归。查找类问题设置头尾指针是常见的做法