ホームページ > Java > &#&チュートリアル > Java は Arrays クラスの binarySearch() 関数を使用してバイナリ検索を実装します

Java は Arrays クラスの binarySearch() 関数を使用してバイナリ検索を実装します

王林
リリース: 2023-07-24 21:31:56
オリジナル
2456 人が閲覧しました

Java は、Arrays クラスの binarySearch() 関数を使用してバイナリ検索を実装します。

バイナリ検索は、順序付けされた配列内のターゲット要素を迅速に見つけることができる効率的な検索アルゴリズムです。 Java では、Arrays クラスの binarySearch() 関数を使用して二分検索を実装できます。

Arrays クラスは、Java で提供される配列を操作するためのツール クラスで、二分探索などの配列を操作するためのさまざまなメソッドが含まれています。 binarySearch() 関数を使用して二分検索を実装する方法を見てみましょう。

まず、順序付き配列を作成する必要があります。この配列は、基本型の配列または参照型の配列にすることができます。ここでは例として整数配列を取り上げます:

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

次に、Arrays クラスを呼び出します。 binarySearch() 関数はバイナリ検索を実行します。この関数は、検索対象の配列と検索対象のターゲット要素の 2 つのパラメータを渡す必要があります。この関数は、配列内のターゲット要素のインデックス位置を返します。ターゲット要素が見つからない場合は負の数を返します。戻り値の正負を判断することで、対象の要素が配列内にあるかどうかを判断できます。

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

ターゲット要素が配列内に存在する場合、index はターゲット要素のインデックス位置ですin the array ; ターゲット要素が配列内に存在しない場合、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() 関数を使用すると、より効率的なパフォーマンスを実現できます。

ただし、binarySearch() 関数を使用して二分検索を実行するための前提条件は、配列が順序付けされている必要があることに注意してください。配列が順序付けされていない場合は、まず配列を並べ替えてから二分探索を実行する必要があります。

要約すると、この記事では、Arrays クラスの binarySearch() 関数を使用して Java で二分検索を実装する方法を紹介し、サンプル コードを提供します。二分探索の原理と使い方をマスターすることで、順序付けされた配列から目的の要素をより効率的に見つけることができます。

以上がJava は Arrays クラスの binarySearch() 関数を使用してバイナリ検索を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート