Javaのバイナリ検索とは何ですか?それを実装する方法は?



Javaのバイナリ検索は、ソートされた配列内のターゲット値の位置を見つける検索アルゴリズムです。この記事では、例を使用して実装する方法を説明します。

検索と並べ替えのアルゴリズムは 人気のあるアルゴリズム あらゆるプログラミング言語で。これらは、プログラミングの基礎を理解するための基礎です。そのような人気のある検索アルゴリズムの1つは、 。この記事では、その実装についてすべて説明します。

この記事では、以下のトピックについて説明します。





始めましょう!

二分探索とは何ですか?

での二分探索 は ソートされた内のターゲット値の位置を見つける検索アルゴリズム アレイ 二分探索 ターゲット値を配列の中央の要素と比較します。それソートされた要素のセットでのみ機能します。コレクションでバイナリ検索を使用するには、 最初にソートする必要があります。



Javaでのバイナリ検索プログラム-Javaでのバイナリ検索-Edurekaいつ は、ソートされたセットで操作を実行するために使用されます。反復回数は、検索されている値に基づいて常に減らすことができます。上記のスナップショットで、 中間要素 。二分探索のアナロジーは、配列がソートされているという情報を使用し、時間計算量を次のように減らすことです。 O(log n)

二分探索アルゴリズムの実装

以下の擬似コードを見て、よりよく理解しましょう。

プロシージャbinary_search&larrソートされた配列n&larr配列のサイズx&larr検索する値low = 1に設定high = nに設定し、highの場合xが見つからない

説明:



ステップ1: まず、xを中央の要素と比較します。

ステップ2: xが中央の要素と一致する場合は、中央のインデックスを返す必要があります。

ステップ3: それ以外の場合、xがmid要素よりも大きい場合、xはmid要素の後の右側の半分の配列にのみ存在できます。したがって、あなたは右半分を繰り返します。

ステップ4: それ以外の場合、(xが小さい)場合は、左半分で繰り返します。

これが、指定された配列内の要素を検索する必要がある方法です。

plsqlをオンラインで無料で学ぶ

次に、バイナリ検索アルゴリズムを再帰的に実装する方法を見てみましょう。以下のプログラムは同じことを示しています。

再帰的二分探索

public class BinarySearch {//再帰的二分探索のJava実装// arr [l..h]に存在する場合はxのインデックスを返し、そうでない場合は-1を返しますint binarySearch(int a []、int l、int h、int x){if(h> = l){int mid = l +(h --l)/ 2 //要素が中央に存在する場合if(a [mid] == x)return mid // If elementがmidより小さい場合、(a [mid]> x)return binarySearch(arr、l、mid-1、x)の場合にのみ左側のサブ配列に存在できます//それ以外の場合、要素は右側のサブ配列にのみ存在できますreturn binarySearch (arr、mid + 1、h、x)} //要素が配列に存在しない場合にここに到達しますreturn-1} public static void main(String args []){BinarySearch ob = new BinarySearch()int a [] = {20、30、40、10、50} int n = a.length int x = 40 int res = ob.binarySearch(a、0、n -1、x)if(res == -1)System.out .println( '要素が存在しません')else System.out.println( '要素がインデックスで見つかりました' + res)}}

上記のプログラムを実行すると、特定のインデックスに存在する要素が検索されます

インデックス2で見つかった要素

だからこれは私たちの二分探索の終わりに私たちをもたらします Java 論文。あなたがそれが有益であり、理解するのに役立つことを願っています 。

チェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。私たちは、このJavaインタビューの質問に加えて、あなたの旅のすべてのステップであなたを助けるためにここにいます。 Java開発者になりたい学生や専門家向けに設計されたカリキュラムを考え出します。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。

でバイナリ検索を実装する際に問題が発生した場合 、下のコメント欄に記載してください 早急にご連絡いたします。