Java
 Computer >> コンピューター >  >> プログラミング >> Java

配列内の要素を再帰的に線形検索するJavaプログラム


この記事では、配列内の要素を再帰的に線形検索する方法を理解します。線形検索は非常に単純な検索アルゴリズムであり、すべてのアイテムを1つずつ順次検索します。

以下は同じのデモンストレーションです-

入力がであると仮定します −

Input array:
14 20 35 47 50 65 72 81 90 99

Key element: 72

必要な出力は

The element 72 is present at position: 6

アルゴリズム

Step 1 - START
Step 2 - Declare a string array namely input_array, two integer namely key_element and index
Step 3 - Define the values.
Step 4 - Iterate through the array.
Step 5 - Define the element to be searched. Invoke the recursive method by passing these parameters.
Step 6 - Define an ‘if’ condition with the condition that a failure would return -1, otherwise the position of the element itself.
Step 7 - Display this on the console.
Step 8 - Stop

例1

ここでは、整数の線形探索を示します。

public class LinearSearch {
   static int recSearch(int input_array[], int l, int r, int key_element) {
      if (r < l)
         return -1;
      if (input_array[l] == key_element)
         return l;
      if (input_array[r] == key_element)
         return r;
      return recSearch(input_array, l+1, r-1, key_element);
   }
   public static void main(String[] args) {
      int input_array[] = {14, 20, 35, 47, 50, 65, 72, 81, 90, 99};
      System.out.println("The elements of the array is defined as ");
      for (int i : input_array) {
         System.out.print(i +" ");
      }
      int key_element = 72;
      System.out.println("\n\nThe elements to be searched in the array is: " + key_element);
      int index = recSearch(input_array, 0, input_array.length-1, key_element);
      if (index != -1)
         System.out.println("\nThe element " + key_element + " is present at position: " + index);
      else
         System.out.println("Element " + key_element + " is not present: ");
   }
}

出力

The elements of the array is defined as
14 20 35 47 50 65 72 81 90 99

The elements to be searched in the array is: 72

The element 72 is present at position: 6

例2

ここでは、文字列の線形検索を示します。

public class Demo {
   static int recSearch(String input_array[], int l, int r, String key_element) {
      if (r < l)
         return -1;
      if (input_array[l] == key_element)
         return l;
      if (input_array[r] == key_element)
         return r;
      return recSearch(input_array, l+1, r-1, key_element);
   }
   public static void main(String[] args) {
      String input_array[] = { "Scala", "Java", "Python", "Mysql"};
      System.out.println("The elements of the array is defined as ");
      for (String i : input_array) {
         System.out.print(i +" ");
      }
      String key_element = "Java";
      System.out.println("\n\nThe elements to be searched in the array is: " + key_element);
      int index = recSearch(input_array, 0, input_array.length-1, key_element);
      if (index != -1)
         System.out.println("\nThe element " + key_element + " is present at position: " + index);
      else
         System.out.println("Element " + key_element + " is not present: ");
   }
}

出力

The elements of the array is defined as
Scala Java Python Mysql

The elements to be searched in the array is: Java

The element Java is present at position: 1

  1. バイト配列をIPアドレスに変換するJavaプログラム

    バイト配列広告を指定すると、JavaのIPAddressクラスを使用してIPアドレスに変換し、結果を表示することがタスクになります。 バイト配列とは バイトは8ビットで構成され、バイト配列はバイナリ情報を格納する連続したバイトで構成されます。 Javaでは、byteはコンピュータのバイトとして理解できるプリミティブデータ型です。つまり、8ビットであり、-128〜127の範囲の値を保持できます。 バイトの宣言 −バイト名_of_byte_variable=初期化子; バイト配列の宣言 − byte [] name_of_byte_array =new byte []; IPアドレスクラス

  2. Pythonプログラムでの線形探索

    この記事では、線形検索とPython3.xでの実装について学習します。またはそれ以前。 アルゴリズム 指定されたarr[]の左端の要素から開始し、要素xをarr []の各要素と1つずつ比較します。 xがいずれかの要素と一致する場合は、インデックス値を返します。 xがarr[]のどの要素とも一致しない場合は、-1を返すか、要素が見つかりません。 次に、特定のアプローチの視覚的表現を見てみましょう- 例 def linearsearch(arr, x):    for i in range(len(arr)):     &nbs