Java 程序以递归方式线性搜索数组中的元素

javacampus interviewserver side programmingprogramming

在本文中,我们将了解如何以递归方式线性搜索数组中的元素。线性搜索是一种非常简单的搜索算法,其中对所有项目逐一进行顺序搜索。

下面是相同的演示 −

假设我们的输入是

输入数组:
14 20 35 47 50 65 72 81 90 99

关键元素:72

期望输出的将是

元素 72 位于位置:6

算法

步骤 1 - 开始
步骤 2 - 声明一个字符串数组,即 input_array,两个整数,即 key_element 和 index
步骤 3 - 定义值。
步骤 4 - 遍历数组。
步骤 5 - 定义要搜索的元素。通过传递这些参数调用递归方法。
步骤 6 - 定义一个 ‘if’ 条件,条件是失败将返回 -1,否则返回元素本身的位置。
步骤 7 - 在控制台上显示此信息。
第 8 步 - 停止

示例 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("数组元素定义为");
      for (int i : input_array) {
         System.out.print(i +" ");
      }
      int key_element = 72;
      System.out.println("\n\n数组中要查找的元素为:" + key_element);
      int index = recSearch(input_array, 0, input_array.length-1, key_element);
      if (index != -1)
         System.out.println("\n元素 " + key_element + " 存在于位置: " + index);
      else
         System.out.println("元素 " + key_element + " 不存在: ");
   }
}

输出

数组元素定义为
14 20 35 47 50 65 72 81 90 99

数组中要搜索的元素为:72

元素 72 位于位置: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("数组元素定义为");
      for (String i : input_array) {
         System.out.print(i +" ");
      }
      String key_element = "Java";
      System.out.println("\n\n数组中要查找的元素为:" + key_element);
      int index = recSearch(input_array, 0, input_array.length-1, key_element);
      if (index != -1)
         System.out.println("\n元素 " + key_element + " 存在于位置: " + index);
      else
         System.out.println("元素 " + key_element + " 不存在: ");
   }
}

输出

数组的元素定义为
Scala Java Python Mysql

数组中要搜索的元素是:Java

元素 Java 位于位置:1

相关文章