>  기사  >  Java  >  Java는 Collections 클래스의 binarySearch() 함수를 사용하여 정렬된 컬렉션에서 이진 검색을 수행합니다.

Java는 Collections 클래스의 binarySearch() 함수를 사용하여 정렬된 컬렉션에서 이진 검색을 수행합니다.

王林
王林원래의
2023-07-27 08:58:451414검색

Java는 Collections 클래스의 binarySearch() 함수를 사용하여 정렬된 컬렉션에서 이진 검색을 수행합니다.

이진 검색은 정렬된 컬렉션에서 특정 요소를 찾는 효율적인 알고리즘입니다. Java에서는 Collections 클래스의 binarySearch() 함수를 사용하여 이진 검색을 구현할 수 있습니다. 이 기사에서는 BinarySearch() 함수를 사용하여 정렬된 컬렉션에서 검색하는 방법을 소개하고 특정 코드 예제를 제공합니다.

이진 검색 알고리즘의 기본 아이디어는 찾을 요소를 순서 집합의 중간 요소와 비교하는 것입니다. 중간 요소가 찾을 요소와 같으면 검색이 성공합니다. 요소가 찾을 요소보다 크면 집합의 왼쪽 절반에 있습니다. 부분적으로 검색을 계속하고, 중간 요소가 찾을 요소보다 작으면 집합의 오른쪽 절반에서 계속 검색합니다. 지속적으로 검색 범위를 좁히면 대상 요소가 결국 컬렉션에 발견되거나 존재하지 않는 것으로 결정될 수 있습니다.

Java에서는 Collections 클래스의 binarySearch() 함수를 사용하여 이진 검색을 구현할 수 있습니다. 이 함수의 정의는 다음과 같습니다:

public static int BinarySearch(List6a81cb417874e9e8f3805fb2aeaa2f28> 목록, T 키)

이 함수는 Comparable 인터페이스와 요소를 구현하는 정렬된 컬렉션을 허용합니다. 매개변수로 발견되며 컬렉션에 있는 요소의 인덱스 값을 반환합니다. 요소가 컬렉션에 없으면 요소를 삽입해야 하는 위치의 음수 값에서 1을 뺀 값인 음수가 반환됩니다(예: - (삽입 위치 + 1)).

다음은 Collections 클래스의 binarySearch() 함수를 사용한 이진 검색에 대한 코드 예제입니다.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class BinarySearchExample {

public static void main(String[] args) {
    List<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(3);
    list.add(5);
    list.add(7);
    list.add(9);

    int index = Collections.binarySearch(list, 5);
    if (index >= 0) {
        System.out.println("Element found at index " + index);
    } else {
        System.out.println("Element not found. Insertion point: " + (-(index + 1)));
    }
}

}

위 코드에서는 정렬된 정수가 포함된 정수의 ArrayList를 생성합니다. 컬렉션에 있는 요소 5의 인덱스 값을 찾기 위해 Collections 클래스의 binarySearch() 함수를 호출했습니다. 요소가 컬렉션에 존재하므로 해당 요소의 인덱스 값이 반환됩니다. 결국 우리는 "인덱스 2에서 발견된 요소"를 인쇄할 것입니다.

집합에서 존재하지 않는 요소(예: 4)를 찾으면 해당 요소가 삽입되어야 하는 위치를 나타내는 음수를 얻게 됩니다. 위 코드에서는 인덱스 1에 4를 삽입해야 하므로, 반환되는 음수는 -(1+1)=-2입니다. 코드를 실행하면 "요소를 찾을 수 없습니다. 삽입 지점: -2"라는 출력이 표시됩니다.

Collections 클래스의 binarySearch() 함수를 사용하면 정렬된 컬렉션에서 쉽게 이진 검색을 수행할 수 있습니다. 이 알고리즘의 시간 복잡도는 O(logN)이므로 이진 검색은 대규모 데이터를 처리할 때 효율성이 높고 장점이 있습니다.

요약:
이 글에서는 Java에서 정렬된 컬렉션에서 이진 검색을 수행하기 위해 Collections 클래스의 binarySearch() 함수를 사용하는 방법을 소개합니다. 이 기능을 사용하면 컬렉션에서 특정 요소의 위치를 ​​빠르게 찾을 수 있습니다. 이 글의 소개와 코드 예제를 통해 독자들이 이진 검색 알고리즘의 적용과 사용법을 익히고 프로그래밍 효율성과 기술을 향상시킬 수 있기를 바랍니다.

위 내용은 Java는 Collections 클래스의 binarySearch() 함수를 사용하여 정렬된 컬렉션에서 이진 검색을 수행합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.