Kelių taikinių paieškos (Multiple Targets Search) algoritmas Java

Kelių taikinių paieškos algoritmas yra programavimo metodas, Java naudojamas ieškant kelių reikšmių vienu metu masyve arba sąraše. Šis metodas optimizuoja paieškos procesą ir taupo laiką ieškant kelių verčių vienu metu.

Kaip veikia kelių taikinių paieškos algoritmas

Kelių taikinių paieškos algoritmas veikia kartodamas kiekvieną masyvo arba sąrašo elementą ir lygindamas juos su tikslinių reikšmių, kurių reikia ieškoti, sąrašu. Jei masyvo elementas atitinka tikslinę reikšmę, jis įtraukiamas į rezultatų sąrašą.

Kelių taikinių paieškos algoritmo privalumai ir trūkumai

Privalumai:

  • Geras našumas: šis algoritmas vienu metu ieško kelių reikšmių ir sutaupo laiko, palyginti su kelių atskirų paieškų atlikimu.
  • Universalus: gali būti taikomas įvairiuose scenarijuose, kai reikia ieškoti kelių taikinių.

Trūkumai:

  • Atminties suvartojimas: dėl poreikio išsaugoti rezultatų sąrašą, šis algoritmas gali sunaudoti daugiau atminties, palyginti su paprastomis paieškomis.

Pavyzdys ir paaiškinimas

Apsvarstykite pavyzdį, kaip naudoti kelių taikinių paieškos algoritmą, norint rasti kelis konkrečius sveikuosius skaičius sveikųjų skaičių masyve 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");  
        }  
    }  
}  

Šiame pavyzdyje mes naudojame kelių taikinių paieškos algoritmą, kad rastume skaičius 2 ir 7 sveikųjų skaičių masyve. Algoritmas kartojasi per masyvą ir lygina kiekvieną elementą su tikslinių reikšmių sąrašu. Šiuo atveju skaičius 2 randamas 1 ir 3 pozicijose, o skaičius 7 – 2 ir 6 masyvo pozicijose.

Nors šis pavyzdys parodo, kaip kelių taikinių paieškos algoritmas gali vienu metu ieškoti kelių reikšmių, jis taip pat gali būti taikomas įvairiems paieškos scenarijams programuojant Java.