Algoritmul de căutare cu mai multe ținte (Multiple Targets Search) în Java

Algoritmul de căutare cu ținte multiple este o metodă de Java programare utilizată pentru a căuta mai multe valori simultan într-o matrice sau listă. Această abordare optimizează procesul de căutare și economisește timp prin căutarea mai multor valori simultan.

Cum funcționează algoritmul de căutare cu ținte multiple

Algoritmul de căutare cu ținte multiple funcționează prin iterarea fiecărui element al matricei sau listei și comparându-le cu o listă de valori țintă care trebuie căutate. Dacă un element din matrice se potrivește cu o valoare țintă, acesta este adăugat la lista de rezultate.

Avantajele și dezavantajele algoritmului de căutare cu ținte multiple

Avantaje:

  • Performanță bună: Acest algoritm caută mai multe valori dintr-o singură mișcare, economisind timp în comparație cu efectuarea mai multor căutări separate.
  • Versatil: poate fi aplicat în diferite scenarii care necesită căutarea mai multor ținte.

Dezavantaje:

  • Consum de memorie: Din cauza necesității de a stoca lista de rezultate, acest algoritm poate consuma mai multă memorie în comparație cu căutările simple.

Exemplu și explicație

Luați în considerare un exemplu de utilizare a algoritmului de căutare cu ținte multiple pentru a găsi mai multe numere întregi specifice într-o matrice de întregi în 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");  
        }  
    }  
}  

În acest exemplu, folosim algoritmul de căutare cu ținte multiple pentru a găsi numerele 2 și 7 dintr-un tablou întreg. Algoritmul iterează prin matrice și compară fiecare element cu lista de valori țintă. În acest caz, numărul 2 se găsește la pozițiile 1 și 3, iar numărul 7 se găsește la pozițiile 2 și 6 din matrice.

În timp ce acest exemplu demonstrează modul în care algoritmul de căutare cu ținte multiple poate căuta mai multe valori simultan, poate fi aplicat și la diferite scenarii de căutare în Java programare.