二分查找又叫折半查找,是常用算法中的一个,用于排好序的数组中,其代码如下(java):
class demo{
public int fun(int[]nums,int target){//在数组nums(从小到大排序)上查找值为target的下标,没有就返回-1。 int n=nums.length;
int l=0,r=n-1;//查找范围为l~r之间
while(l<=r){//查找终止条件
int mid=(l+r)/2;
if(nums[mid]==target){
return mid;//找到,返回下标
}
if(nums[mid]>target){
r=mid-1;//目标值在mid左边(不包括mid),修改范围为l~mid-1
}
if(nums[mid]<target){
l=mid+1;//目标值在mid右边(不包括mid),修改范围为mid+1~r
}
}
return -1;
}
}
本人计算机菜鸡,代码和见解不一定全面,想和其他初学者分享经验,各位有更好的代码和见解,欢迎留言!(手动狗头)