# 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
'SW > Java' 카테고리의 다른 글
[용어정리] 선택정렬(Selection Sort), 버블정렬(Bubble Sort) (0) | 2020.09.11 |
---|---|
[개념정리] Java의 정석 Chapter 3 연산자 (0) | 2020.07.27 |
[개념정리] Java의 정석 Chapter 2 변수 (0) | 2020.07.24 |
[개념정리] Java의 정석 Chapter 1 자바를 시작하기 전에 (0) | 2020.07.24 |
[문제] 자바의 정석 Chapter 7 객체지향 프로그래밍 2 연습문제 및 해답정리 (0) | 2020.07.24 |