-
이분 검색Computer Science/자료구조 2023. 12. 16. 00:03
이분 검색 = Binary Search
정렬 된 데이터 집합을 가지고 수행해야 한다.
자세한 정보 : https://prosto.tistory.com/165
요약
정렬(오름차순) 된 데이터 집합을 반으로 쪼개어 2분할 한 다음,
찾아야 하는 값이
m
이고, 반으로 쪼갠 기준이 된 값을mid
라고 했을 때mid > m 이면 왼쪽 구간을 탐색 mid < m 이면 오른쪽 구간을 탐색한다.
탐색 방법은 처음과 같이 데이터 집합을 반으로 쪼개어 mid 가 m 보다 큰지 작은지 판단 후 분할을 반복하거나, mid 가 m 과 같다면 반환한다.
코드
데이터 집합에서 이분 검색으로 m 찾기
public int 이분검색(int n, int m, int[] arr) { Arrays.sort(arr); int lt = 0, rt = n - 1; while (lt <= rt) { int mid = (lt + rt) / 2; if (arr[mid] == m) return mid; if (arr[mid] > m) rt = mid - 1; else lt = mid + 1; } return -1; }
'Computer Science > 자료구조' 카테고리의 다른 글
버블 정렬 , 선택 정렬 , 삽입 정렬 (0) 2023.12.16 단방향 Linked List 구현 (0) 2023.12.05 Trie (0) 2023.12.04 그래프 (0) 2023.11.22 힙 Heap (0) 2023.11.21