자료구조

[자료구조] Binary Search (이진 탐색)

Joo.v7 2024. 9. 8. 14:31

Binary Search (이진 탐색)

정렬된 배열이나, 리스트에서 특정 값을 찾기 위한 탐색 알고리즘이다.

 

코드

import java.util.Arrays;

public class BinarySearch {
    public static int binarySearch(int[] array, int target) {
        int left = 0;
        int right = array.length - 1;

        while(left <= right) {
            int mid = (right - left) / 2 + left;

            if (array[mid] == target) {
                return mid;
            }

            else if (array[mid] < target) {
                left = mid + 1;
            }

            else if (array[mid] > target) {
                right = mid - 1;
            }
        }
        return -1;
    }
}

class Test {
    public static void main(String[] args) {
        int[] array = {8,19,2,14,6,7,3,5};
        Arrays.sort(array); // {2, 3, 5, 6, 7, 8, 14, 19}
        System.out.println(BinarySearch.binarySearch(array, 14));
    }
}

 

실행 결과

6

 

 

 

2024.09.08 - [Java/연습 문제] - [Java 연습문제] Book - Books

 

[Java 연습문제] Book - Books

"book.csv"을 읽어서 Book 객체로 변환한 후, 이를 LinkedList에 저장한다. Books 클래스는 Iterator 패턴을 통해 for-each문으로 쉽게 순회할 수 있다. 코드 book.csv더보기1|이노베이터|창의적인 삶으로 나아

lightningtech.tistory.com

 


 

출처: https://github.com/gikpreet/class-programming_with_java/tree/master

 

GitHub - gikpreet/class-programming_with_java

Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.

github.com