JAVA/자바 2019. 6. 23. 10:57

이진 탐색이란 오름차순으로 정렬되어 있는 배열에서 특정한 값의 위치를 찾아내는 알고리즘이다.

배열의 중간에 있는 임의의 값을 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하여, 중간 값보다 작으면 좌측의 데이터들을 대상으로, 중간 값보다 크면 우측의 데이터를 대상으로 다시 탐색하여, 해당 값을 찾을 때까지 이 과정을 반복한다.

 

오름차순으로 정렬된 리스트에서만 사용 가능한 단점이 있지만, 속도가 빠르다는 장점이 있다.

 

오름차순으로 정렬하는 방법

https://sno-machinelearning.tistory.com/16

 

Arrays.binarySearch(배열 이름, 찾고자 하는 값);

 

[예제 결과]

 

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {5,7,6,1,3,9,0,12,100};

public static void main(String[] args) {
Arrays.sort(arr);
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
int a = Arrays.binarySearch(arr, 6);
int b = Arrays.binarySearch(arr, 12);
System.out.print("배열에서의 6과 12의 위치 : ");
System.out.println(a +", "+ b);
}
}

posted by 스노(Snow)
: