Binary Search (이진 탐색)
정렬된 배열이나, 리스트에서 특정 값을 찾기 위한 탐색 알고리즘이다.
코드
import java.util.Arrays;
public class BinarySearch {
public static int binarySearch(int[] array, int target) {
int left = 0;
int right = array.length - 1;
while(left <= right) {
int mid = (right - left) / 2 + left;
if (array[mid] == target) {
return mid;
}
else if (array[mid] < target) {
left = mid + 1;
}
else if (array[mid] > target) {
right = mid - 1;
}
}
return -1;
}
}
class Test {
public static void main(String[] args) {
int[] array = {8,19,2,14,6,7,3,5};
Arrays.sort(array); // {2, 3, 5, 6, 7, 8, 14, 19}
System.out.println(BinarySearch.binarySearch(array, 14));
}
}
실행 결과
6
2024.09.08 - [Java/연습 문제] - [Java 연습문제] Book - Books
[Java 연습문제] Book - Books
"book.csv"을 읽어서 Book 객체로 변환한 후, 이를 LinkedList에 저장한다. Books 클래스는 Iterator 패턴을 통해 for-each문으로 쉽게 순회할 수 있다. 코드 book.csv더보기1|이노베이터|창의적인 삶으로 나아
lightningtech.tistory.com
출처: https://github.com/gikpreet/class-programming_with_java/tree/master
GitHub - gikpreet/class-programming_with_java
Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.
github.com
'자료구조' 카테고리의 다른 글
[자료구조] Binary Search Tree (BST, 이진 탐색 트리) (0) | 2024.09.07 |
---|---|
[자료구조] Hash Table (해시 테이블) (0) | 2024.09.07 |
[자료구조] Queue(큐) with Java (1) | 2024.09.07 |
[자료구조] LinkedList (0) | 2024.09.04 |
[Java] ArrayList (0) | 2024.09.02 |