SW/Java
[필기정리] Day61 - 2진검색 예제문제
coderbear_16
2020. 9. 17. 15:40
# 2진검색
이진 탐색(Binary Search) 알고리즘 개념 이해 및 추가 예제
Jihun's Development Blog
cjh5414.github.io
Q. 사용자에게 임의의 숫자 10개를 입력받고 배열에 저장하라.
이후 해당 숫자가 있으면 있다고 출력하고, 없으면 없다고 출력하라.
A.
import java.util.Scanner;
public class BinarySearch {
public static void main(String[] args) {
int[] num = {1, 2, 3, 4, 5, 6, 7, 10, 50, 92};
//////////////////////////////////////////////////
// int[] num = new int[10000];
//
// for(int i=0;i<num.length;i++) {
// num[i] = i+1;
// }
//////////////////////////////////////////////////
int first = 0;
int last = num.length-1;
int mid = (first+last)/2;
Scanner sc = new Scanner(System.in);
int inputNum = 0;
int cnt = 0;
System.out.println("찾고자 하는 숫자를 입력 : ");
inputNum = sc.nextInt();
while(first<=last)
{
cnt++;
if(inputNum>num[mid]) first = mid + 1;
else if(inputNum < num[mid]) last = mid - 1;
else{
System.out.println("정답 : " + (mid + 1) + "번째 있음");
System.out.println("찾은 횟수 : " + cnt);
break;
}
mid = (first+last)/2;
}
if(first>last)
{
System.out.println("검색결과가 없습니다.");
System.out.println("찾은 횟수 : " + cnt);
}
sc.close();
}
}
728x90