Binary Search : 데이터가 정렬돼 있는 상태에서 원하는 값을 찾아내는 알고리즘이다.
대상 데이터의 중앙값과 찾고자 하는 값을 비교해 데이터의 크기를 절반씩 줄이면서 대상을 찾는다.
기능 : 타겟 데이터 탐색
기능
특징 : 중앙값 비교를 통합 대상 축소 방식
특징
시간 복잡도 : O(logN)
시간 복잡도
O(logN)
오름차순으로 정렬된 데이터에서 다음 4가지 방법을 반복한다.(내림차순이라면 조건을 반대로 하여)
현재 데이터셋의 중앙값을 선택한다.
중앙값 > 타겟 데이터 : 중앙값 기준으로 왼쪽 데이터셋을 선택한다.
중앙값 > 타겟 데이터
중앙값 < 타겟 데이터 : 중앙값 기준으로 오른쪽 데이터셋을 선택한다.
중앙값 < 타겟 데이터
과정 1 ~ 3을 반복하다가 중앙값 == 타겟 데이터 일때 탐색을 종료한다.
1 ~ 3
중앙값 == 타겟 데이터
이렇게 이진 탐색을 사용하면 N개의 데이터에서 log(N)번의 연산으로 원하는 데이터의 위치를 찾을 수 있다.
N
log(N)
다만 이진 탐색은 데이터가 정렬되어 있어야 한다는 전제 조건이 있다.
Last updated 3 months ago