อัลกอริธึม การค้นหาหลายเป้าหมาย (Multiple Targets Search) ใน Java

อัลกอริธึมการค้นหาหลายเป้าหมายเป็นวิธี Java การเขียนโปรแกรมที่ใช้ในการค้นหาค่าหลายค่าพร้อมกันภายในอาร์เรย์หรือรายการ วิธีการนี้จะปรับกระบวนการค้นหาให้เหมาะสมและประหยัดเวลาด้วยการค้นหาหลายค่าในคราวเดียว

อัลกอริธึมการค้นหาหลายเป้าหมายทำงานอย่างไร

อัลกอริธึมการค้นหาหลายเป้าหมายทำงานโดยการวนซ้ำแต่ละองค์ประกอบของอาร์เรย์หรือรายการ และเปรียบเทียบกับรายการค่าเป้าหมายที่จะค้นหา หากองค์ประกอบในอาร์เรย์ตรงกับค่าเป้าหมาย องค์ประกอบนั้นจะถูกเพิ่มเข้าไปในรายการผลลัพธ์

ข้อดีและข้อเสียของอัลกอริทึมการค้นหาหลายเป้าหมาย

ข้อดี:

  • ประสิทธิภาพที่ดี: อัลกอริธึมนี้จะค้นหาค่าหลายค่าในครั้งเดียว ซึ่งประหยัดเวลาเมื่อเทียบกับการค้นหาหลายค่าแยกกัน
  • อเนกประสงค์: สามารถนำไปใช้ในสถานการณ์ต่างๆ ที่ต้องมีการค้นหาหลายเป้าหมาย

ข้อเสีย:

  • การใช้หน่วยความจำ: เนื่องจากจำเป็นต้องจัดเก็บรายการผลลัพธ์ อัลกอริธึมนี้อาจใช้หน่วยความจำมากกว่าเมื่อเทียบกับการค้นหาแบบธรรมดา

ตัวอย่างและคำอธิบาย

ลองพิจารณาตัวอย่างการใช้อัลกอริธึมการค้นหาหลายเป้าหมายเพื่อค้นหาจำนวนเต็มเฉพาะหลายค่าในอาร์เรย์จำนวนเต็ม Java ใน

import java.util.ArrayList;  
import java.util.List;  
  
public class MultipleTargetsSearchExample {  
    public static List<Integer> multipleTargetsSearch(int[] array, int[] targets) {  
        List<Integer> results = new ArrayList<>();  
  
        for(int target: targets) {  
            for(int i = 0; i < array.length; i++) {  
                if(array[i] == target) {  
                    results.add(i); // Add position to results if found  
                }  
            }  
        }  
  
        return results;  
    }  
  
    public static void main(String[] args) {  
        int[] numbers = { 4, 2, 7, 2, 9, 5, 7 };  
        int[] targets = { 2, 7 };  
  
        List<Integer> positions = multipleTargetsSearch(numbers, targets);  
  
        if(!positions.isEmpty()) {  
            System.out.println("Targets found at positions: " + positions);  
        } else {  
            System.out.println("Targets not found in the array");  
        }  
    }  
}  

ในตัวอย่างนี้ เราใช้อัลกอริทึมการค้นหาหลายเป้าหมายเพื่อค้นหาตัวเลข 2 และ 7 ภายในอาร์เรย์จำนวนเต็ม อัลกอริทึมจะวนซ้ำผ่านอาร์เรย์และเปรียบเทียบแต่ละองค์ประกอบกับรายการค่าเป้าหมาย ในกรณีนี้ หมายเลข 2 จะอยู่ที่ตำแหน่ง 1 และ 3 และหมายเลข 7 จะอยู่ที่ตำแหน่ง 2 และ 6 ในอาร์เรย์

แม้ว่าตัวอย่างนี้จะแสดงให้เห็นว่าอัลกอริทึมการค้นหาหลายเป้าหมายสามารถค้นหาค่าหลายค่าในคราวเดียวได้อย่างไร แต่ยังสามารถนำไปใช้กับสถานการณ์การค้นหาต่างๆ ใน Java การเขียนโปรแกรม ได้อีกด้วย