알고리즘
이진탐색 알고리즘 Binary Search
아이티.파머
2017. 11. 14. 17:25
반응형
주어진 배열에 특정한 요소를 찾기 위한 방법. 단순하게 반복문을 돌며 모두 비교하는 순차탐색알고리즘을 이용할 수 있다.
시간을 적약하기위해 이진탐색 알고리즘을 사용하게 되는데
요소를 절반으로 나누어 값을 비교해 나가는 방식이다. 흔히 숫자 게임에서 높음 낮음을 생각하면 되겠다.
단 이진탐색을 하기 위해서는 조건이 있다. 정렬이 되어 있어야 한다는 것이다.
크기가 n인 리스트 data에서 특정 요소를 찾아 낸다고 할 때 이진탐색 순서는 다음과 같다.
1. n개인 data 리스트 오름차순 정렬
2. 처음과 마지막 값 설정head =0 , tail = data.length-1;
3. mid 중간 값 설정 (head+tail)/2
4. target 값과 mid 값이 같은지 확인
5. 값이 같지 않은경우 target 값이 mid 값보다 크면 head 를 +1 그반대의 경우 tail -1 으로 값을 변경후 3번으로 돌아가 반복한다.
소스로 보면 다음과 같다.
반응형