고코딩

이진 탐색 Java 구현 본문

알고리즘

이진 탐색 Java 구현

고코딩 2021. 5. 27. 14:51

이진탐색

이진 탐색이란 정렬되어 있는 배열에서 원하는 값을 찾아내는 탐색 방법중 하나이다. 이진탐색은 처음부터 찾는 것이 아니라 양 끝에서 부터 시작해 중간값과 찾으려는 값을 비교해서 배열을 2개로 나눠 찾으려는 값이 속한 배열에서 다시 이진탐색을 하는 방법이다. 처음부터 찾는 일반 탐색과 속도측면에서 매우 빠른 방법이다.

가장 주의해야 할 점은 이 탐색은 정렬된 배열에서 써야하는 것이다.

배열에서 찾으려는 값의 인덱스 번호를 리턴해주는 함수이다.

만약에 찾는 값이 없다면 -1을 리턴함

public int binary_search(int item, int[] numbers) {
        int left=0;
        int right = numbers.length-1;
        while(right >= left) {
            int mid = (left + right)/2;
            if(numbers[mid]==item) {
                return mid;
            }
            if(numbers[mid]>item) {
                right = mid-1;
            }else {
                left = mid+1;
            }
        }

        return -1;
    }

'알고리즘' 카테고리의 다른 글

[Brute Force] 브루트 포스 설명과 간단 코테 풀이  (0) 2021.05.06