카테고리 없음
이분 탐색(Binary Search)
jgs7784
2022. 11. 18. 20:31
728x90
반응형
배열에서 원하는 key 값을 찾는다.
1. 검색할 정렬된 배열과, 원하는 key 값, 배열의 길이가 필요
( BSearch(int arr[], int key, int size) )
2. 검색의 범위 start 에서 end 까지 설정
start = 0, end = size -1 로 잡는게 편함
3. 이분 탐색은 start~end 구간을 설정한 뒤, 구간의 길이를 절반씩 줄이며
start와 end가 구간의 경계에 계속해서 위치하도록 만들어야함.
4. start+1 < end 인 동안 [start, end] , mid = (start+ end)/2 를 구해서
mid < key 이면 [mid, end] 로, mid > key 이면 [start, mid] 로 구간을 줄여 나간다.
start + 1 < end 인 동안 반복하기 때문에 start와 end 사이 무조건 한 칸 이상이 남고, start < mid < end 도 항상 성립
결국 언젠가는 start+1 == end 가 되어 반복 탈출함
반응형