ホームページ  >  記事  >  Java  >  Java は、Collections クラスの binarySearch() 関数を使用して、順序付けられたコレクション内でバイナリ検索を実行します。

Java は、Collections クラスの binarySearch() 関数を使用して、順序付けられたコレクション内でバイナリ検索を実行します。

王林
王林オリジナル
2023-07-27 08:58:451412ブラウズ

Java は、Collections クラスの binarySearch() 関数を使用して、順序付けされたコレクションで二分検索を実行します。

二分検索は、順序付けされたコレクションで特定の要素を見つけるための効率的なアルゴリズムです。 Java では、Collections クラスの binarySearch() 関数を使用してバイナリ検索を実装できます。この記事では、binarySearch() 関数を使用して順序付きコレクション内を検索する方法を紹介し、具体的なコード例を示します。

二分探索アルゴリズムの基本的な考え方は、検索対象の要素と順序付きセットの中央の要素を比較することです。中央の要素が検索対象の要素と等しい場合、検索は成功します。 ; 中央の要素が検索対象の要素より大きい場合、検索はセットの左半分で継続されます; 中央の要素が検索対象の要素より小さい場合、検索はセットの右半分で継続されます。検索範囲を継続的に絞り込むことで、最終的に目的の要素が見つかるか、コレクション内に存在しないと判断できます。

Java では、Collections クラスの binarySearch() 関数を使用してバイナリ検索を実装できます。この関数の定義は次のとおりです:

public static int binarySearch(Listf943c60feb13a35b673a814e7318e011> list, T key)

この関数は、以下を実装する配列を受け取ります。 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 を作成します。 。 Collections クラスの binarySearch() 関数を呼び出して、コレクション内の要素 5 のインデックス値を検索しました。要素はコレクション内に存在するため、要素のインデックス値が返されます。最終的には、「インデックス 2 で要素が見つかりました」を出力します。

コレクション内に存在しない要素 (たとえば 4) を検索すると、要素を挿入する位置を示す負の数値が得られます。上記のコードでは、インデックス 1 に 4 を挿入する必要があるため、返される負の数は -(1 1) = -2 になります。コードを実行すると、「要素が見つかりません。挿入ポイント: -2」という出力が表示されます。

Collections クラスの binarySearch() 関数を使用すると、順序付けられたコレクション内で二分検索を簡単に実行できます。このアルゴリズムの時間計算量は O(logN) であるため、大規模なデータを処理する場合、二分探索は効率が高く、利点があります。

概要:
この記事では、Collections クラスの binarySearch() 関数を使用して、Java の順序付きコレクションでバイナリ検索を実行する方法を紹介します。この関数を使用すると、コレクション内の特定の要素の位置をすばやく見つけることができます。この記事の紹介とコード例を通じて、読者が二分探索アルゴリズムの応用と使用法をマスターし、プログラミングの効率とスキルを向上できることを願っています。

以上がJava は、Collections クラスの binarySearch() 関数を使用して、順序付けられたコレクション内でバイナリ検索を実行します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。