ในบทความนี้ เราจะเข้าใจวิธีการค้นหาองค์ประกอบในอาร์เรย์แบบเรียกซ้ำเป็นเส้นตรง การค้นหาเชิงเส้นเป็นอัลกอริธึมการค้นหาที่ง่ายมากซึ่งจะทำการค้นหาตามลำดับสำหรับรายการทั้งหมดทีละรายการ
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
สมมติว่าข้อมูลที่เราป้อนคือ −
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