[알고리즘] 이진탐색(이분탐색) - Binary SearchCS/알고리즘2022. 12. 18. 12:27
Table of Contents
728x90
728x90
Binary Search
정렬된 데이터 집합을 이분화 하면서 탐색하는 방법
정렬되어 있어야 한다
보통 세 개의 변수를 지정해 두고 (ex : left, mid, right)
찾고자 하는 값, 즉 mid의 값이 찾아낸 값보다 크면 mid는 찾아낸 값보다 오른쪽에 위치하고 작다면 왼쪽에 위치한다
public static int binarySearch(int arr[], int x) {
int mid;
int left = 0;
int right = arr.length - 1;
// 배열을 다 돌때까지 반복
while (left <= right) {
mid = (right + left) / 2;
// 원하는 값이라면 해당 위치 반환
if (arr[mid] == x) {
return mid;
}
if (x < arr[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
// 원하는 값을 찾지 못할경우를 지정
return -1;
}
}
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!