public class test1 {
/**
* @param args
*/
/*文字说明
* 需求:在有序数组A中查找1target
* 如果找到返回索引,如果找不到返回-1
* 设n为数组长度;i=0;j=n-1
* 如果i>j,结束查找,没找到
* 设mid=(i+j)/2
* 如果target<A[mid]说明 target在mid的左边
* 所以j=mid-1
* 如果target<A[mid]说明target在mid的右边
* 所以 i=mid+1
* A[mid]=tartget说明找到了,返回mid
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
int []arr={1,2,3,4,5};
System.out.println(Basic(arr,4));
}
public static int Basic(int arr[],int target){
int n=arr.length;
int i=0,j=n-1;
while(i<=j)
{
int mid=i+(j-i)/2;//防止整数溢出
if(target>arr[mid]){
i=mid+1;
}
if(target<arr[mid]){
j=mid-1;
}
if(arr[mid]==target){
return mid;
}
}
return -1;
}
}