猿问

这个二分查找法有一点不懂

/**

 * 二分法查找

 * 二分法查找建立在已经排序好的基础上  

 */

public class BinaryChopTest {


public static void main(String[] args) {

int []arry = {1,3,4,5,8,10,15,25,29};

Scanner in = new Scanner(System.in);

System.out.println("请输入您要查找的元素:");

int num = in.nextInt();

System.out.println(binarySearch(arry,num));

}

public static String binarySearch(int [] a,int num){

int begin = 0;

int end = a.length-1;

while(begin<=end){

int mid = (begin+end)/2;

if(a[mid]==num){

return "您输入的数的下标是:"+mid;

}

if(a[mid]>num){

end = mid-1;

}

if(a[mid]<num){

begin = mid+1;

}

}

return "您输入的数不在当前数组中";

}


}



最后那两个if啥意思不太懂


慕先生4463397
浏览 1528回答 1
1回答

芝麻大点

这里是重新定义区间的方法,第一个if:如果输入的值小于中间值,则输入的值肯定在前半段,所以结束值向前移一位,第二个if:这个则相反,如果输入值大于中间值,则输入的值肯定在后半段,所以开始值向后移一位,这样就慢慢接近输入的那个值了。
随时随地看视频慕课网APP
我要回答