Trong bài này, chúng ta sẽ hiểu cách tìm kiếm tuyến tính đệ quy một phần tử trong mảng. Tìm kiếm tuyến tính là một thuật toán tìm kiếm rất đơn giản, trong đó tìm kiếm tuần tự được thực hiện cho tất cả các mục một.
Dưới đây là một minh chứng về điều tương tự -
Giả sử đầu vào của chúng tôi là -
Input array: 14 20 35 47 50 65 72 81 90 99 Key element: 72
Đầu ra mong muốn sẽ là -
The element 72 is present at position: 6
Thuật toán
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
Ví dụ 1
Tại đây, chúng tôi hiển thị tìm kiếm tuyến tính trên số nguyên.
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: "); } }
Đầu ra
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
Ví dụ 2
Tại đây, chúng tôi hiển thị tìm kiếm tuyến tính trên chuỗi.
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: "); } }
Đầu ra
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