Αλγόριθμος αναζήτησης πολλαπλών στόχων (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 προγραμματισμό.