바이너리 검색 알고리즘을 코딩하고 있습니다. 내가 제공하는 번호를 검색하는 데 필요한 최소한의 추측을 얻고 싶습니다. 제공하는 번호가 33이면 7을 계산해야합니다. 단계.바이너리 검색 번호를 재귀 적으로 추측
Step no number guessed result range of possible values
0 1-100
1 50 too high 1-49
2 25 too low 26-49
3 37 too high 26-36
4 31 too low 32-36
5 34 too high 32-33
6 32 too low 33-33
7 33 correct
은 그래서 이것은 제가 별도의 방법을 만들어이
package binarySearch;
public class Binary {
int gussedNo;
public static int count =0;
void search(int lowerBound,int upperBound,int num){
gussedNo=upperBound+lowerBound/2;
count();
if(gussedNo==num){
System.out.println(count);}
else if(gussedNo>num){
upperBound=gussedNo-1;
search(lowerBound,upperBound,num);
}
if(gussedNo<num){
lowerBound=gussedNo+1;
search(lowerBound,upperBound,num);
}
}
int count(){
count=count+1;
return count;
}
}
내 코드입니다. 여기에 내가 1로 LOWERBOUND 주어진 100로 uperbound 한
다음package binarySearch;
public class MainClass {
public static void main (String[] args){
Binary search= new Binary();
search.search(1, 100,33);
}
}
내 내 주요 클래스는 ...이며, 수 나는 33 인에 대한 추측을 계산하려는하지만 코드를 실행할 때 내가 얻을 이 이진 검색
"는 ** 최소 ** 추측해야한다 "어떤 숫자도 항상 1입니다. –