728x90
이진탐색은 탐색할 대상 배열이 정렬되어있을 때만 사용할 수 있는 탐색법이다.
배열의 중앙에 있는 값을 이용하여 찾고자 하는 항목이 기준값의 왼쪽 있는지 오른쪽에 있는지를 알아내어
탐색범위를 반으로 줄일 수 있다. 값이 속해있지 않은 부분은 고려하지 않아도 되기 때문에,
매 단계에서 탐색 범위를 반으로 줄여 나갈 수 있다.
데이터의 삽입이나 삭제가 빈번한 경우에는 적합하지 않고, 주로 고정된 데이터에 대한 탐색에 적합하다.
탐색되어야 할 범위의 인덱스[0]를 Low, 인덱스(n-1)를 High라고 할 때 중간값 Mid는 (low+high)/2이다.
구하고자 하는 값이 중간값보다 높다면 low를 mid+1로 만들어주고(탐색범위 오른쪽 반으로 줄어듬)
중간값보다 낮다면 high를 mid-1로 만들어 준다.(탐색범위 왼쪽 반으로 줄어듬)
이를 반복해 탐색하는 값이 Index [M]과 일치하면 탐색에 성공한다.
728x90
'Java > study' 카테고리의 다른 글
객체 지향 프로그래밍(OOP) (0) | 2022.06.15 |
---|---|
함수(function,method) (0) | 2022.06.14 |
최대값 찾기 (0) | 2022.06.13 |
정렬(버블 정렬) (0) | 2022.06.13 |
배열 (0) | 2022.06.10 |