관리 메뉴

한글창제의 기쁨

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

알고리즘

이진탐색 알고리즘 Binary Search

timesurfer 공간지배자 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번으로 돌아간다.



소스로 보면 다음과 같다.




'알고리즘' 카테고리의 다른 글

이진탐색 알고리즘 Binary Search  (0) 2017.11.14
0 Comments
댓글쓰기 폼