Algoritam pretraživanja više ciljeva (Multiple Targets Search) u Java

Algoritam pretraživanja više ciljeva je metoda u Java programiranju koja se koristi za istovremeno traženje više vrijednosti unutar niza ili popisa. Ovaj pristup optimizira proces pretraživanja i štedi vrijeme tražeći više vrijednosti odjednom.

Kako radi algoritam pretraživanja više ciljeva

Algoritam pretraživanja višestrukih ciljeva radi tako što ponavlja svaki element niza ili popisa i uspoređuje ih s popisom ciljnih vrijednosti koje treba pretražiti. Ako element u nizu odgovara ciljnoj vrijednosti, dodaje se na popis rezultata.

Prednosti i nedostaci algoritma pretraživanja više ciljeva

Prednosti:

  • Dobra izvedba: ovaj algoritam traži više vrijednosti odjednom, čime se štedi vrijeme u usporedbi s izvođenjem više zasebnih pretraživanja.
  • Svestran: može se primijeniti u različitim scenarijima koji zahtijevaju traženje više ciljeva.

Nedostaci:

  • Potrošnja memorije: Zbog potrebe za pohranjivanjem popisa rezultata, ovaj algoritam može potrošiti više memorije u usporedbi s jednostavnim pretraživanjem.

Primjer i objašnjenje

Razmotrite primjer korištenja algoritma pretraživanja višestrukih ciljeva za pronalaženje više specifičnih cijelih brojeva u nizu cijelih brojeva u 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");  
        }  
    }  
}  

U ovom primjeru koristimo algoritam pretraživanja više ciljeva za pronalaženje brojeva 2 i 7 unutar niza cijelih brojeva. Algoritam iterira kroz niz i uspoređuje svaki element s popisom ciljnih vrijednosti. U ovom slučaju, broj 2 se nalazi na pozicijama 1 i 3, a broj 7 se nalazi na pozicijama 2 i 6 u nizu.

Iako ovaj primjer pokazuje kako algoritam pretraživanja više ciljeva može pretraživati ​​više vrijednosti odjednom, može se primijeniti i na različite scenarije pretraživanja u Java programiranju.