Java の線形検索は、リスト内の要素を順番に検索するのに役立つ最も単純な検索アルゴリズムの 1 つです。ただし、二分探索アルゴリズムなどの他のアルゴリズムでは線形探索が使用されることはほとんどありません。ハッシュ テーブルを使用すると、線形探索と比較して高速な検索が可能になります。順次検索は項目ごとに実行されます。つまり、すべての項目がチェックされ、一致する項目が見つかった場合はその項目が返されます。それ以外の場合、検索はデータ収集が終了するまで継続されます。 Java には、線形検索操作を実装するメソッドがあります。この線形検索と、それが Java でどのように実装されるかを、いくつかの例とともに段階的に掘り下げてみましょう。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
検索アルゴリズムに使用できる構文は存在しないため、任意のプログラミング言語で線形検索アルゴリズムを実装するのに役立つアルゴリズムが存在します。
アルゴリズム:
ステップ 1: まず、配列の長さを取得する必要があります
ステップ 2: 検索する必要がある要素を取得し、変数に格納します
ステップ 3: 次に、配列の各要素を検索可能な値と比較します
ステップ 4: 場合によっては、一致がある場合。すると、検索可能な要素が見つかります
ステップ 5: そうでない場合、つまり、一致するものが見つからない場合。その後、検索可能な要素が見つからず、指定された場合は -1 を返します
上記のアルゴリズム手順に従って、例を使用して線形検索アルゴリズムを手動で実装し、次にプログラムによる例に入ります。
例:
配列 A[4, 8, 2, 3, 6, 9] とします
検索可能な要素 X=3 にします;
4 | 8 | 2 | 3 | 6 | 9 |
これは X=3 を検索する配列です。
線形検索をプログラムで実行する場合は、配列の長さが必要です。
最初の要素から開始
4 | 8 | 2 | 3 | 6 | 9 |
ここで X=3 = 4
他の要素との比較
4 | 8 | 2 | 3 | 6 | 9 |
ここで X=3 = 8
私たち、ウィルは次の要素に進みます。
4 | 8 | 2 | 3 | 6 | 9 |
ここでは X=3 = 2
前に進みます、
4 | 8 | 2 | 3 | 6 | 9 |
ここで X=3 = 3
要素のインデックスを返して戻ります。要素のインデックスは 3
配列の最後まで要素が見つからなかった場合は、-1、つまり見つからないことを返します。
線形検索アルゴリズム
class LinearSearchAlgorithm { static int LSA(int array[], int length, int x) { for (int i = 0; i < length; i++) { if (array[i] == x) return i; } return -1; } public static void main(String[] args) { int[] array = { 4, 8, 2, 3, 6, 9 }; int length = array.length; int x = 3; int index = LSA(array, length, x); if (index == -1) System.out.println("Element not found in the array"); else System.out.println("Element is found at index " + index); } }
出力:
import java.util.Scanner; class LSA { public static void main(String args[]) { int length, k, i, array[]; Scanner input = new Scanner(System.in); System.out.println("Enter length of the array:"); length = input.nextInt(); array = new int[length]; System.out.println("Enter " + length + " elements"); for (i = 0; i < length; i++) { array[i] = input.nextInt(); } System.out.println("Enter the value to be searched:"); k = input.nextInt(); for (i = 0; i < length; i++) { if (array[i]== k) { System.out.println(k+" is found at index "+(i)); break; } } if (i == length) System.out.println(k + " is not found in the array"); } }
出力 1:
以下は STDIN コマンド プロンプトでの入力です。
いいえ。配列要素の数: 6
配列要素: 2、4、6、8、10、1
検索可能な値: 4
出力 2:
いいえ。配列要素の数: 8
配列要素: 3、5、7、9、10、34、25、21
検索可能な値: 10
出力 3: 要素が見つからない場合
いいえ。要素の数: 5
配列要素: 2、4、5、6、10
検索可能な値: 9
線形検索アルゴリズムはほとんど使用されないため、ハッシュ テーブルやバイナリ検索などの他の検索アルゴリズムを使用すると高速な検索が可能になります。線形探索の時間計算量は次のとおりです:
配列内に要素が見つかった場合: O(n) ~ O(1)
配列内に要素が見つからない場合: O(n) ~ O(n/2)
これで、「Java の線形検索」のトピックを終了します。線形検索アルゴリズムとは何か、およびその実装手順を例を挙げて説明しました。また、プログラム的に例を解決し、要素が利用可能な場合と要素が利用できない場合など、さまざまな出力を示しました。また、検索可能な値が見つかったかどうかに基づいて、線形検索アルゴリズムの時間計算量も確認されました。ありがとう!楽しく学習しましょう!!
以上がJava の線形検索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。