> Java > java지도 시간 > 본문

王林
풀어 주다: 2023-07-24 21:31:56
원래의
2405명이 탐색했습니다.

Java는 Arrays 클래스의 binarySearch() 함수를 사용하여 이진 검색을 구현합니다.

이진 검색은 정렬된 배열에서 대상 요소의 위치를 ​​빠르게 찾을 수 있는 효율적인 검색 알고리즘입니다. Java에서는 Arrays 클래스의 binarySearch() 함수를 사용하여 이진 검색을 구현할 수 있습니다.

Arrays 클래스는 배열 연산을 위해 Java에서 제공되는 도구 클래스입니다. 이 클래스에는 이진 검색을 포함하여 배열 연산을 위한 다양한 메서드가 포함되어 있습니다. BinarySearch() 함수를 사용하여 이진 검색을 구현하는 방법을 살펴보겠습니다.

먼저 순서가 지정된 배열을 만들어야 합니다. 이 배열은 기본 유형 배열이거나 참조 유형 배열일 수 있습니다. 여기서는 정수 배열을 예로 들어 보겠습니다.

int[] arr = {1, 3, 5, 7, 9, 11, 13}

다음으로 Arrays 클래스의 binarySearch() 함수를 호출하여 수행합니다. 이진 검색. 이 함수는 검색할 배열과 검색할 대상 요소라는 두 개의 매개변수를 전달해야 합니다. 이 함수는 배열에서 대상 요소의 인덱스 위치를 반환하거나, 대상 요소를 찾을 수 없는 경우 음수를 반환합니다. 반환 값의 양수 값 또는 음수 값을 판단하여 대상 요소가 배열에 있는지 여부를 확인할 수 있습니다.

int target = 9;
int index = Arrays.binarySearch(arr, target);

대상 요소가 배열에 있는 경우 index는 대상 요소가 없는 경우 배열에 있는 대상 요소의 인덱스 위치입니다. 배열에 존재하는 경우 Index는 대상 요소를 삽입해야 하는 위치에서 1을 뺀 값입니다.

다음으로 반환된 인덱스를 기반으로 해당 처리를 수행할 수 있습니다. 다음은 전체 샘플 코드입니다.

import java.util.Arrays;

public class BinarySearchExample {

public static void main(String[] args) {
    int[] arr = {1, 3, 5, 7, 9, 11, 13};
    int target = 9;
    int index = Arrays.binarySearch(arr, target);
    
    if (index >= 0) {
        System.out.println("目标元素在数组中的位置是:" + index);
    } else {
        System.out.println("目标元素不存在于数组中,它应该插入的位置是:" + (-index-1));
    }
}
로그인 후 복사

}

위 코드를 실행하면 출력 결과는 "배열에서 대상 요소의 위치는 다음과 같습니다. 4"는 배열에서 대상 요소 9의 인덱스 위치가 4임을 의미합니다.

이진 검색은 O(logN)의 시간 복잡도를 갖는 효율적인 검색 알고리즘으로 단순 선형 검색보다 훨씬 빠릅니다. 대규모의 정렬된 배열을 검색할 때 Arrays 클래스의 binarySearch() 함수를 사용하면 보다 효율적인 성능을 제공할 수 있습니다.

그러나 이진 검색을 수행하기 위해 binSearch() 함수를 사용하기 위한 전제 조건은 배열을 정렬해야 한다는 점에 유의해야 합니다. 배열이 정렬되지 않은 경우 먼저 배열을 정렬한 다음 이진 검색을 수행해야 합니다.

요약하자면, 이번 글에서는 Arrays 클래스의 binarySearch() 함수를 사용하여 Java에서 이진 검색을 구현하는 방법을 소개하고 샘플 코드를 제공합니다. 이진 검색의 원리와 사용법을 익히면 정렬된 배열에서 대상 요소를 보다 효율적으로 찾을 수 있습니다.

위 내용은 의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿