본문 바로가기

TIL

[TIL] 220124

이분탐색(이진탐색)

배열 또는 리스트를 탐색하는 방법

배열의 중앙에 있는 값을 조사하여 찾고자 하는 항목이 왼쪽 또는 오른쪽 부분 배열에 있는지를 알아내어 탐색의 범위를 반으로 줄인다.

구현

탐색해야 할 리스트 Integer[] = array가 있을 때, 인덱스 마지막 값을 end, 첫번째 값을 start라고 한다.

 

start, end는 탐색할 시작점과 종료점이 된다.

start = 0

end = n-1 = 14

 

 

이분탐색을 위한 mid 값을 구한다.

mid = (start + end)/2

 

 

이때 구하고자 하는 값 k의 값이 9일 경우, 

array[mid]의 값은 7이므로 array[mid] < k이다.

이럴경우 start = mid+1로 재설정한다.

 

1. array[mid] > k    : end = mid-1
2. array[mid] < k    : start = mid + 1
3. array[mid] == k  : 탐색 종료

 

 

 

 

 

 

Referrence

 

https://minhamina.tistory.com/127

 

이진탐색 = 이분탐색 (Binary Search) - Java로 구현

이진 탐색 = 이분 탐색 (Binary Search) 정렬된 배열 또는 리스트에 적합한 고속 탐색 방법이다. 배열의 중앙에 있는 값을 조사하여 찾고자 하는 항목이 왼쪽 또는 오른쪽 부분 배열에 있는지를 알아

minhamina.tistory.com

 

'TIL' 카테고리의 다른 글

[TIL] 220121  (0) 2022.01.21
[TIL] 220112  (0) 2022.01.12
[TIL] 210929  (0) 2021.10.01
[TIL] 210810  (0) 2021.08.10
[TIL] 210809  (0) 2021.08.10