티스토리 뷰
이분탐색이란 중간지점을 기준으로 데이터를 반씩 나눠서 탐색하는 알고리즘 입니다. 이분탐색의 시간 복잡도는 logN 으로 표현이 가능합니다. 아래는 이분탐색의 예제를 소스로 구현한 것 입니다.
package search;
public class SearchAlgorithm {
public static int binarySearch(int[] array, int target) {
int left = 0;
int right = array.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (array[mid] == target) {
return mid; // 찾은 경우 해당 인덱스를 반환
}
if (array[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1; // 찾지 못한 경우 -1을 반환
}
public static void main(String[] args) {
int[] array = {1, 3, 5, 7, 9};
int target = 3;
int index = binarySearch(array, target);
if (index != -1) {
System.out.println("원소 " + target + "는 인덱스 " + index + "에 위치해 있습니다.");
} else {
System.out.println("원소 " + target + "를 찾을 수 없습니다.");
}
}
}
추가로, 이분탐색을 할땐 반드시 배열이 정렬되어 있어야 합니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] Zip 파일 내부 정보 가져오기 (0) | 2024.05.24 |
---|---|
[Java] 디자인 패턴 종류 (0) | 2024.05.20 |
[Java] JVM GC 프로세스 (0) | 2024.05.13 |
[Java] 객체지향(OOP) 설계와 특징 (0) | 2024.01.15 |
[Java] Enum 활용 (0) | 2023.07.14 |
최근에 올라온 글
- Total
- Today
- Yesterday