관리 메뉴

IT.FARMER

이진탐색 알고리즘 Binary Search 본문

알고리즘

이진탐색 알고리즘 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번으로 돌아가 반복한다.

소스로 보면 다음과 같다.

반응형