이진 탐색 (Binary Search)

최준호·2021년 7월 15일
0

algorithm

목록 보기
13/39

탐색은 선형탐색(Linear Search)과 이진탐색이 있는데 그 중 이진 탐색이다.

  • 장점
    - 빠름
  • 단점
    - 입력되는 배열이 정렬이 되어있어야함! (되게 중요)

이진 탐색은 정렬되어 있는 배열을 탐색하기 좋은 탐색 방법으로 정렬을 할수 없는 문제의 경우 선형 탐색으로 탐색하는게 좋다.

코드

public void binarySearch(int arr[], int key) {
    int mid;
    int left = 0;
    int right = arr.length - 1;

    while (right >= left) {
        mid = (right + left) / 2;

        if (key == arr[mid]) {
            System.out.println("key = "+ key + ", array index = " + mid+", value = "+arr[mid]);
            break;
        }

        if (key < arr[mid]) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }

    }
}
profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글