이진 탐색이란 오름차순으로 정렬되어 있는 배열에서 특정한 값의 위치를 찾아내는 알고리즘이다.
배열의 중간에 있는 임의의 값을 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하여, 중간 값보다 작으면 좌측의 데이터들을 대상으로, 중간 값보다 크면 우측의 데이터를 대상으로 다시 탐색하여, 해당 값을 찾을 때까지 이 과정을 반복한다.
오름차순으로 정렬된 리스트에서만 사용 가능한 단점이 있지만, 속도가 빠르다는 장점이 있다.
오름차순으로 정렬하는 방법
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);
}
}
'JAVA > 자바' 카테고리의 다른 글
미니프로젝트 - MVC2패턴으로 홈페이지 재구성하기 (0) | 2019.11.06 |
---|---|
[JAVA] 특정범위 배열복사 Arrays.copyOfRange() (0) | 2019.06.23 |
[JAVA] 배열복사 Arrays.copyOf() 함수 (0) | 2019.06.23 |
[JAVA]오름차순 내림차순 정렬 Arrays.sort() (0) | 2019.06.20 |
객체 지향 프로그래밍 (0) | 2019.06.20 |