나무 숲
이진 탐색 (Binary Search) 본문
자료구조의 목적은 데이터를 효율적으로 저장하는 데 있다
이러한 자료구조를 기반으로 작성된 알고리즘은 메모리와 속도를 고려하게 되는데 우리가 더 관심있게 보는 것은 속도이다.
순차 탐색 알고리즘(배열의 첫 번째 원소부터 순서대로 탐색)보다 훨씬 좋은 성능을 보인다
단!!! 배열에 저장된 원소는 정렬되어 있어야 한다
방법
1 배열의 중앙(배열 길이가 n이라고 할 때, (처음0 + 끝n-1)/2)에 찾는 값이 저장되어 있는지 확인
2 만약 아닐 경우, 찾는 값과 배열의 값을 비교하여 찾고자 하는 값이 배열의 값보다 작으면, 배열의 값을 기준으로 오른쪽에 있는 원소들로 탐색 범위 제한
마찬가지로, 배열의 값보다 찾고자 하는 값이 크면, 배열 값 기준으로 왼쪽에 있는 원소들로 탐색 범위 제한 (오름차순 일 때!)
값을 찾을때까지 계속 반복!
재귀적 구현
728x90
반응형
'Career > 알고리즘 · 자료구조' 카테고리의 다른 글
연결 리스트 (Linked List) - 이중 연결 리스트, 이중 원형 연결 리스트 (2) | 2016.08.16 |
---|---|
연결 리스트 (Linked List) - 원형 연결 리스트 (0) | 2016.08.15 |
연결 리스트 (Linked List) - 메모리의 동적 할당 (0) | 2016.08.11 |
연결 리스트 (Linked List) - 배열 (0) | 2016.07.15 |
하노이 타워 (The Tower of Hanoi) (0) | 2016.07.09 |
Comments