반응형
탐색의 방법은 크게 두가지가 있는데, 선형 탐색과 이진 탐색이 있습니다.
그 중 이진 탐색 방법에 대해 작성을 해봤습니다.
이진 탐색(Binary Search)
- 정렬된 상태에서 사용할 수 있습니다.
배열의 정 중앙값을 선택해 그 값보다 작으면 왼쪽 배열, 크면 오른쪽 배열에서 재귀를 돌려 결국 원하는 값을 탐색할 때 사용하는 방법입니다.
ex) int[] arr = {1,2,3,4,5,6,7,8,9} 에서 이진 탐색으로 숫자 6을 찾아라.
1) 중앙값인 5보다 원하는 값이 크기 때문에 우측 배열을 재귀로 돌아야 합니다. {6,7,8,9}
2) 중앙값인 7보다 원하는 값이 작으니 좌측 배열을 재귀로 돌아야 합니다. {6}
3) 중앙값인 6과 원하는 값인 6이 일치하기 때문에 종료된다.
3번째 만에 원하는 값을 탐색하였습니다.
시간복잡도
이진 탐색 : O(log n)
* 선형탐색은 정렬 되지 않은 상태, 이진 탐색은 정렬된 상태에서 사용하는게 좋습니다.
'CS 지식 > 자료구조_알고리즘' 카테고리의 다른 글
벨만-포드(Belman-Ford) 알고리즘 & 다익스트라(Dijkstra) 알고리즘 & A* 알고리즘 (0) | 2025.01.14 |
---|---|
그래프(Graph) : 너비우선탐색(BFS) & 깊이우선탐색(DFS) (0) | 2025.01.13 |
힙 정렬(Heap Sort), 병합 정렬(Merge Sort), 퀵 정렬(Quick Sort) (0) | 2025.01.12 |
버블 정렬(Bubble Sort) vs 선택정렬(Selection Sort) vs 삽입정렬(Insertion Sort) (0) | 2025.01.11 |
힙(Heap)과 이진탐색트리(Binary Search Tree) (0) | 2025.01.09 |
댓글